MANUAL
DE PHP. Parte 2. OBJETOS/AGREGADO
Hola amigos, ¿cómo están?
Tal y como lo prometimos en nuestra entrega anterior, vamos a ver ahora
lo que en Programación orientada a objetos se conoce como Agregado.
Es muy probable que el Agregado se parezca mucho a
la Herencia, sin embargo, es necesario aclarar la diferencia
enorme que existe.
Cuando hablamos de Herencia, significa que una subclase
Hereda los atributos y los métodos de la superclase, siendo que
todos tienen algo en común; sin embargo el Agregado es
la agrupación de una serie de objetos que no han de tener nada
en común, pero que necesitan estar juntos por alguna razón.
Para poner un ejemplo de ello pensemos en una selva, la selva está
llena de animales, sin embargo, eso no significa que selva, como tal
tenga algo en común con los animales (además pensemos
en el hecho de que en la selva también hay plantas, rocas, cazadores,
taladores,… momento, no sigamos o lloraremos)
Sin embargo, la mejor forma de entender el Agregado
es con un ejemplo, primero que nada, modifiquemos de manera un tanto
dramática nuestro código y escribámoslo de la siguiente
forma:
<?php
class canimal{
function canimal($patas){
$this->patas = $patas;
}
function sonido(){
echo "Este animal Ladra";
}
var $ojos = 2;
}
class cperros extends canimal{}
class cgatos extends canimal{
function sonido(){
echo "En realidad este animal
maúlla";
}
}
class ccasa{
var $animal = array();
function naciendo($tipo, $cantidad){
$cantidad = count($this->animal);
$this->animal[$cantidad] = $tipo;
}
function mostrar_animales(){
echo "Hay ".count($this->animal)."
animales en la casa<BR>";
for($i=0;$i<count($this->animal);$i++){
echo $this->animal[$i]."<BR>";
}
}
}
$nuevo = new ccasa();
$nuevo->naciendo(cgatos, 1);
$nuevo->naciendo(cperros, 1);
$nuevo->mostrar_animales();
?>
Tenemos ahora, además de la superclase y las dos subclases originales,
una clase extra que se llama ccasa, en la que “inmiscuimos”
a las dos clases cgatos y cperros,
de tal manera que las criaturas que nacen dentro de la casa, sean, precisamente,
nuestras dos subclases, gracias a la variable $tipo, que recoge a las
subclases.
La nueva clase (que no hereda de nadie, pero que incluye a las dos
suclases, derivadas de canimales) tiene dos funciones, una que se ocupa
del nacimiento de las nuevas “criaturitas” y la otra que
muestra la cantidad de animales que tenemos. Nuestro resultado es el
siguiente:
[Objeto Flash Eliminado]
Una pequeña tarea: ¿cómo enviarían a la
pantalla la función sonido() de las dos subclases?
Con esto, queridísimos amigos, cubrimos lo básico de
la programación orientada a objetos (POO). Sin embargo, hay que
decir que se puede hacer código muy bueno y respetable, incluso
sin la necesidad de la programación orientada a objetos (y si
no que lo digan los programadores de C).
De momento, nos despedimos diciendo: Disfruten de lo que hacen, tanto
que se convierta, no en un trabajo, sino en una diversión. Hasta
Pronto.