17
Ing. Roger Ernesto Alarcón García Escuela de Computación e Informática PROGRAMACION AVANZADA PROGRAMACION ORIENTADA A OBJETOS EN PHP

Programacion OO

Embed Size (px)

DESCRIPTION

POO

Citation preview

Diapositiva 1

PROGRAMACION AVANZADAPROGRAMACION ORIENTADA A OBJETOS EN PHP

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e Informtica

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e InformticaObjetoClaseAtributosMtodosConstructorInstanciaEncapsulamientoPolimorfismoHerenciaAgregacin y ComposicinConceptos de OO

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e InformticaLa palabra reservada class indica una declaracin de clase, delimitada por llaves.La clase debe utilizar la variable $this para referenciar a sus propios mtodos y atributos.Para referenciar atributos y mtodos utilizamos el operador ->Un mtodos con el mismo nombre de la clase es un constructor de objetos, siendo ejecutado siempre que una instancia es creada. A partir de la versin 5 en PHP, un constructor es definido por la funcin __construct()Clases y Objetos en PHP

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e InformticaPublic = Puede ser accedido por cualquier clase.Protected = Puede ser accedido solamente por quien extiende la clase.Private = Puede ser accedido solamente por su clase.Especificadores de Acceso

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e Informticaclass CuentaCorriente{public $saldo;function CuentaCorriente($valor){$this->saldo = $valor;}function retiro($monto){if($this->saldo >= $monto)$this->saldo -= $monto;}function deposito($monto){$this->saldo += $monto;}}

Clase Simple

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e InformticaLa definicin de la clase debe estar disponible en el script que utiliza la clase (usando include o requiere)Un objeto de la clase debe ser instanciado por el operador new.El operador -> permite referenciar a los atributos y mtodos del objeto.

Utilizando una clase

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e Informtica

Utilizando una clase

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e InformticaCuando declaramos static un mtodo o una variable podemos hacer uso de ella sin la necesidad de instanciar la clase. Ejemplo:

Mtodos y variables Estticas

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e InformticaCuando declaramos final un mtodo su valor inicial no podr ser modificado. Ejemplo:

Mtodos Finales

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e Informtica

Constructores y Destructores

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e InformticaUna clase abstracta no puede ser instanciada directamente. Para hacer uso de ella necesitamos extenderla e implementar todos los mtodos abstractos con sus accesos.abstract class Abstracta{public abstract function setNombre($nombre);public abstract function getNombre();}

Clases Abstractas

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e Informticaclass ClaseDerivada extends Abstracta {private $nombre;public function setNombre($nombre){$this->nombre = $nombre;}public function getNombre(){return $this->nombre;}}

Clases Abstractas

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e Informtica$objNuevo = new ClaseDerivada();$objNuevo->setNombre(PHP5);echo $objNuevo->getNombre();Clases Abstractas

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e InformticaUna clase puede extender (extends) a otra clase.Todos los atributos y mtodos estarn disponibles inmediatamente, usando la variable $this.El constructor de la superclase debe ser llamado explcitamente por el constructor de la subclase.La definicin de la subclase debe incluir la definicin de la superclase; utilizando el comando include_once (o require_once) para evitar problemas.Herencia

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e Informticainclude_once(CuentaCorriente.php);class CuentaEspecial extends CuentaCorriente{var $limite;function CuentaEspecial($valor, $limite){parent::__construct($valor);$this->limite = $limite;}function retiro($monto){if($this->saldo + $this->limite >= $monto)$this->saldo -= $monto;}}Sub Clase en Php

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e Informtica

Utilizando la sub clase

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e Informtica

Ing. Roger Ernesto Alarcn GarcaEscuela de Computacin e Informtica