08 Ejemplo Semana8
08 Ejemplo Semana8
08 Ejemplo Semana8
SEMANA 8
Ejemplos
Introducción a la
Programación Orientada
a objetos (POO). Parte II
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni 1
ESTE DOCUMENTO
utilizar los CONTIENE
contenidos para fines EJEMPLOS
comerciales de ninguna clase. DE LA
SEMANA 7
Ejemplos de POO en PHP:
Para una mejor comprensión de los ejemplos se deben seguir las siguientes instrucciones:
Ingrese a: http://www.writephponline.com/
Copie el código de cada uno de los ejemplos mostrados, para así familiarizarse con la POO en PHP
Tome en cuenta que en los códigos de ejemplo que se muestran, todo lo que esté luego de “//” implica un comentario, y estos buscan
explicar cada una de las líneas de código allí mostradas.
Ejemplo 1
A continuación se muestra la declaración de una clase llamada Desplazamiento, la cual es una interfaz, luego declararemos una clase Animal de
la cual heredan dos clases y se evidenciará como se implementa la función desplazar de la interfaz:
<?php
public function desplazar(); // Función llamada desplazar, que luego será implementada por las clases que usen esta interfaz
2
ESTE DOCUMENTO CONTIENE EJEMPLOS DE LA
SEMANA 7
public function getNombre(){ //Función que retorna el nombre del Animal
class Gato extends Animal implements Desplazamiento{ //declaración clase Gato que hereda de Animal e implementa Desplazamiento
$this->nombre = $nombre;
$this->sonido = $sonido;
return "caminando"; //Se indica que para la clase Gato el desplazamiento es caminando
3
ESTE DOCUMENTO CONTIENE EJEMPLOS DE LA
SEMANA 7
}
class Pajaro extends Animal implements Desplazamiento{ //Declaración clase “Pajaro” que hereda de Animal e implementa la interfaz Desplazamiento
$this->nombre = $nombre;
$this->sonido = $sonido;
$gato = new Gato('Kitty','Maullar'); //Se instancia la clase Gato, creando el objeto gato y asignando a sus atributos los valores entre paréntesis
$pajaro = new Pajaro('Piolin','Trinar'); //Se instancia la clase Pajaro, creando el objeto pajaro y asignando a sus atributos los valores entre paréntesis
echo "El gato se llama: " . $gato->nombre . " su sonido se conoce como: " . $gato->sonido . " y se desplaza: " . $gato->desplazar() . "<br>";
//La instrucción anterior muestra los atributos del objeto gato y se evidencia cómo se desplaza
echo "El pájaro se llama: " . $pajaro->nombre . " su sonido se conoce como: " . $pajaro->sonido . " y se desplaza: " . $pajaro->desplazar() . "<br>";
//La instrucción anterior muestra los atributos del objeto pajaro y se evidencia cómo se desplaza
?>
4
ESTE DOCUMENTO CONTIENE EJEMPLOS DE LA
SEMANA 7
Ejemplo 2:
A continuación se muestra otro ejemplo de interfaz, y luego como la función calculoArea() es implementada en otras clases:
<?php
class Cuadrado implements Poligono //Se declara la clase Cuadrado que implementa a Poligono
echo 'área de un cuadrado : a=l*l<br>'; //Se indica la forma de cálculo del área de un cuadrado
5
ESTE DOCUMENTO CONTIENE EJEMPLOS DE LA
SEMANA 7
class Rectangulo implements Poligono //Se declara la clase Rectangulo que implementa la interfaz Poligono
echo 'área de un rectángulo : a=b*h<br>'; //Se indica la forma de cálculo del área de un rectángulo
class Triangulo implements Poligono //Se declara clase Triangulo que implementa la interfaz Poligono
echo 'área de un triángulo : a=(b*h)/2<br>'; //Se indica la forma de cálculo del área de un triángulo
6
ESTE DOCUMENTO CONTIENE EJEMPLOS DE LA
SEMANA 7
$rectangulo = new Rectangulo; //Se crea el objeto rectangulo
?>
7
ESTE DOCUMENTO CONTIENE EJEMPLOS DE LA
SEMANA 7
Ejemplo 3:
A continuación se verá la declaración de una clase abstracta llamada Fruta, la cual tendrá métodos y atributos abstractos, la clase como tal no
puede ser instanciada, tendrán que existir clases que hereden de éstas, las cuales podrán implementar los métodos abstractos y ser instanciadas
como tal:
<?php
abstract public function comer(); //Se declara la función comer de forma abstracta, lo cual obligará a que la clase que herede de Fruta lo implemente
}
// para extender una clase abstracta usamos la misma nomenclatura que para extender una clase normal.
8
ESTE DOCUMENTO CONTIENE EJEMPLOS DE LA
SEMANA 7
$mandarina = new Mandarina();//Se instancia la clase Mandarina creando el objeto mandarina
$mandarina->comer();
// Ahora estas líneas a continuación, no ejecutarán nada, por cuanto una clase abstracta no se puede instanciar
$fruta = new Fruta();
$fruta->comer();
?>
9
ESTE DOCUMENTO CONTIENE EJEMPLOS DE LA
SEMANA 7