> Manuales > Orientación a objetos con PHP

Vemos que es una clase, y como podemos definirlas e instanciarlas.

Las clases en Programación orientada a objetos (POO) son definiciones de los elementos que forman un sistema, en este caso, definiciones de los objetos que van a intervenir en nuestros programas.

Un objeto se define indicando qué propiedades y funcionalidades tiene. Justamente esas declaraciones son lo que es una clase. Cuando se hace una clase simplemente se especifica qué propiedades y funcionalidades tiene. Por ejemplo, un hombre podría tener como propiedades el nombre o la edad y como funcionalidades, comer, moverse o estudiar.

En la clase hombre declararíamos dos atributos: la edad o el nombre, que serían como dos variables. También deberíamos crear tres métodos, con los procedimientos a seguir para que el hombre pueda comer, moverse o estudiar. Estos métodos se definen declarando funciones dentro de la clase.

El código para definir una clase se puede ver a continuación:

class hombre{ 
var $nombre; 
var $edad; 

function comer($comida){ 
//aquí el código del método 
} 

function moverse($destino){ 
//aquí el código del método 
} 

function estudiar($asignatura){ 
//aquí el código del método 
} 
}

Podrá comprobarse que este código no difiere en nada del de las versiones anteriores de PHP, que ya soportaban ciertas características de la POO. Esta situación cambiará a poco que exploremos las características más avanzadas de PHP 5, que implicarán mejoras que no estaban presentes en las versiones anteriores

Instanciar objetos a partir de clases

Hemos visto que una clase es tan sólo una definición. Si queremos trabajar con las clases debemos instanciar objetos, proceso que consiste en generar un ejemplar de una clase.

Por ejemplo, tenemos la clase hombre anterior. Con la clase en si no podemos hacer nada, pero podemos crear objetos hombre a partir de esa clase. Cada objeto hombre tendrá unas características propias, como la edad o el nombre. Además podrá desempeñar unas funciones como comer o moverse, ahora bien, cada uno comerá o se moverá por su cuenta cuando le sea solicitado, sin interferir en principio con lo que pueda estar haciendo otro hombre.

Ya que estamos, vamos a ver cómo se generarían un par de hombres, es decir, cómo se instanciarían un par de objetos de la clase hombre. Para ello utilizamos el operador new.

$pepe = new hombre(); 
$juan = new hombre();

Es importante darse cuenta de la diferencia entre un objeto y una clase. La clase es una definición de unas características y funcionalidades, algo abstracto que se concreta con la instanciación de un objeto de dicha clase.

Un objeto ya tiene propiedades, con sus valores concretos, y se le pueden pasar mensajes (llamar a los métodos) para que hagan cosas.

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online Escu...

Manual