08 Ejemplo Semana8

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

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

interface Desplazamiento{ //Declaración interfaz llamada Desplazamiento

public function desplazar(); // Función llamada desplazar, que luego será implementada por las clases que usen esta interfaz

class Animal {// Declaración clase Animal

private $nombre; //Atributo privado “nombre”

private $sonido; //Atributo privado “sonido”

2
ESTE DOCUMENTO CONTIENE EJEMPLOS DE LA
SEMANA 7
public function getNombre(){ //Función que retorna el nombre del Animal

return $this->nombre; //Se retorna el nombre del Animal

public function getSonido(){//Función que retorna el sonido del Animal

return $this->sonido; //Se retorna el sonido del Animal

class Gato extends Animal implements Desplazamiento{ //declaración clase Gato que hereda de Animal e implementa Desplazamiento

function Gato ($nombre, $sonido){ //Constructor de la clase Gato

$this->nombre = $nombre;

$this->sonido = $sonido;

public function desplazar(){//Implementación de la función desplazar presente en la interfaz Desplazamiento

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

function Pajaro ($nombre, $sonido){ //Constructor de la clase “Pajaro”

$this->nombre = $nombre;

$this->sonido = $sonido;

public function desplazar(){//Implementación de la función desplazar de la interfaz Desplazamiento

return "volando"; //Se indica que la clase “Pajaro” se desplaza volando

$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

interface Poligono //Se declara la interfaz Poligono

function calculoArea();//Se declara la función calculoArea() que luego será implementada

class Cuadrado implements Poligono //Se declara la clase Cuadrado que implementa a Poligono

function calculoArea()//Se implementa la función calculoArea() de la interfaz 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

function calculoArea()//Se implementa la función calculoArea() de 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

function calculoArea() //Se implementa la función calculoArea() de 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

$cuadrado = new Cuadrado; //Se crea el objeto cuadrado

6
ESTE DOCUMENTO CONTIENE EJEMPLOS DE LA
SEMANA 7
$rectangulo = new Rectangulo; //Se crea el objeto rectangulo

$triangulo = new Triangulo; //Se crea el objeto triangulo

$cuadrado->calculoArea(); //Se ejecuta la función calculoArea()

$rectangulo->calculoArea(); //Se ejecuta la función calculoArea()

$triangulo->calculoArea(); //Se ejecuta la función calculoArea()

?>

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 class Fruta {//Declaración de la clase abstracta Fruta


private $color; //Declaración atributo color

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.

class Manzana extends Fruta { //Se declara la clase


public function comer() {
echo 'Lavo la manzana para comerla<br>'; //Se indica la forma de comerla
}
}

class Mandarina extends Fruta {


public function comer() {
echo 'Quito la cáscara de la mandarina para comerla<br>'; //Se indica la forma de comerla
}
}

$manzana = new Manzana();//Se instancia la clase Manzana creando el objeto manzana


$manzana->comer();//Se llama al método comer de la clase Manzana

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

También podría gustarte