Iniciación PHP 5. Programación Orientada a Objetos

download Iniciación PHP 5. Programación Orientada a Objetos

If you can't read please download the document

Transcript of Iniciación PHP 5. Programación Orientada a Objetos

  • 1. Curso de Introduccin a PHP 5 Tema 3: PHP 5 y POO* *POO = Programacin Orientada a Objetos 1. Clases y Objetos 2. Mtodos y propiedades 3. Herencia 4. Constantes, mtodos y variables estticas 5. Interfaces y clases abstractas 6. Excepciones

2. Curso de Introduccin a PHP 5 Tema 3: PHP 5 y POO* *POO = Programacin Orientada a Objetos 1. Clases y Objetos 2. Mtodos y propiedades 3. Herencia 4. Constantes, mtodos y variables estticas 5. Interfaces y clases abstractas 6. Excepciones 3. Curso de Introduccin a PHP 5 3.0. POO en un suspiro Tema 3. PHP 5 y POO Clases. Unidades lgicas que agrupan cdigo y datos. Un clase es un molde con funciones (mtodos) y variables (propiedades). Un objeto es lo que se obtiene al desmoldar la clase. 4. Curso de Introduccin a PHP 5 3.1. Clases y Objetos Tema 3. PHP 5 y POO Cmo creamos una nueva clases? class miClase{ // El cdigo de la clase ira aqu } Cmo instanciamos una clase? $miClaseInstanciada = new miClase(); $copia = $myClaseInstancia; Apuntan al mismo objeto (diferencia con PHP 4) 5. Curso de Introduccin a PHP 5 Tema 3: PHP 5 y POO* *POO = Programacin Orientada a Objetos 1. Clases y Objetos 2. Mtodos y propiedades 3. Herencia 4. Constantes, mtodos y variables estticas 5. Interfaces y clases abstractas 6. Excepciones 6. Curso de Introduccin a PHP 5 3.2. Mtodos y propiedades Tema 3. PHP 5 y POO Cmo declaramos un mtodo en una clase? class miClase{ function miMetodo(){ echo 'Ejecutado miMetodo'; } } Cmo ejecutamos un mtodo en una clase? $this->miMetodo(); $obj = new miClase(); $obj->miMetodo(); Fuera Dentro 7. Curso de Introduccin a PHP 5 3.2. Mtodos y propiedades Tema 3. PHP 5 y POO Constructores class foo { function __construct() { // Inicializar el objeto } } Destructores PHP5 class foo { function foo() { // Inicializar el objeto } } PHP4 class foo { function __destruct() { // Tareas de limpieza } } Cuidado No se puede controlar cuando se ejecuta 8. Curso de Introduccin a PHP 5 3.2. Mtodos y propiedades Tema 3. PHP 5 y POO Visibilidad class foo { [final] visibility function bar(){} } public. Se puede acceder desde cualquier mbito (en caso de omisin) protected. Slo puede ser accedido por la propia clase y sus descendientes private. Slo puede ser accedido por la propia clase final. No puede ser sobreescrito por sus descendientes 9. Curso de Introduccin a PHP 5 3.2. Mtodos y propiedades Tema 3. PHP 5 y POO Declarando una propiedad class foo { public $bar = bar; private $baz = baz; } Llamando a una propiedad $this->bar; $this->baz; $obj = new foo(); $obj->bar; Fuera Dentro 10. Curso de Introduccin a PHP 5 Tema 3: PHP 5 y POO* *POO = Programacin Orientada a Objetos 1. Clases y Objetos 2. Mtodos y propiedades 3. Herencia 4. Constantes, mtodos y variables estticas 5. Interfaces y clases abstractas 6. Excepciones 11. Curso de Introduccin a PHP 5 3.3. Herencia Tema 3. PHP 5 y POO La herencia es una de las claves de la POO Permite extender unas clases de otras. Lo cual implica - Utilizar mtodos y propiedades de las clases padre - Aadir nuevos mtodos - Aadir nuevas propiedades - Sobreescribir mtodos y propiedades de las clases padre La herencia junto con las interfaces permiten el polimorfismo de las clases 12. Curso de Introduccin a PHP 5 3.3. Herencia Tema 3. PHP 5 y POO Haciendo que una clase herede de otra class foo extends bar{ // Cdigo } Sobreescribiendo un mtodo de la clase padre class bar{ protected $a = ; public function __construct($a) { $this->a = $a; } } class foo extends bar{ public function __construct($a) { $this->a = $a*2; } } 13. Curso de Introduccin a PHP 5 3.3. Herencia Tema 3. PHP 5 y POO Reutilizando un mtodo de la clase padre class foo extends bar{ public function reset() { return $this->__construct(); } } Sobreescribiendo y reutilizando un mtodo de la clase padre class foo extends bar{ protected $b = ; public function __construct() { $this->b = 10; return parent::__construct(); } } 14. Curso de Introduccin a PHP 5 Tema 3: PHP 5 y POO* *POO = Programacin Orientada a Objetos 1. Clases y Objetos 2. Mtodos y propiedades 3. Herencia 4. Constantes, mtodos y variables estticas 5. Interfaces y clases abstractas 6. Excepciones 15. Curso de Introduccin a PHP 5 3.4. Constantes, mtodos y propiedades estticas Tema 3. PHP 5 y POO Declarando una propiedad esttica class foo { static public $bar = bar; } Declarando un mtodo esttico class foo { static public function barMethod(){ //Hacer algo } } 16. Curso de Introduccin a PHP 5 3.4. Constantes, mtodos y propiedades estticas Tema 3. PHP 5 y POO Accediendo a una propiedad esttica Ejecutando un mtodo esttico Fuera Dentro $value = self::$bar;$value = foo::$bar; Fuera Dentro $value = self::barMethod();$value = foo::barMethod(); 17. Curso de Introduccin a PHP 5 3.4. Constantes, mtodos y propiedades estticas Tema 3. PHP 5 y POO Definiendo una constante en una clase Llamando a una constante Fuera Dentro $value = self::BAZ;$value = foo::BAZ; class foo{ CONST BAZ = baz; } Una constante no puede cambiar su valor mientras que un mtodo esttico s 18. Curso de Introduccin a PHP 5 Tema 3: PHP 5 y POO* *POO = Programacin Orientada a Objetos 1. Clases y Objetos 2. Mtodos y propiedades 3. Herencia 4. Constantes, mtodos y variables estticas 5. Interfaces y clases abstractas 6. Excepciones 19. Curso de Introduccin a PHP 5 3.5. Interfaces y clases abstractas Tema 3. PHP 5 y POO Definiendo una interfaz Implementando una interfaz en una clase interface miInterfaz{ public function metodoFoo(); } MiClase implements miInterfaz{ public function metodoFoo(){ // Implementacin del mtodo } } 20. Curso de Introduccin a PHP 5 3.5. Interfaces y clases abstractas Tema 3. PHP 5 y POO Definiendo una clase abstracta class MiClaseAbstracta{ public function metodoFoo(){ // Implementacin del mtodo } abstract public function metodoBar(); } Las clases abstractas no se pueden instanciar Deben tener al menos un mtodo abstracto 21. Curso de Introduccin a PHP 5 Tema 3: PHP 5 y POO* *POO = Programacin Orientada a Objetos 1. Clases y Objetos 2. Mtodos y propiedades 3. Herencia 4. Constantes, mtodos y variables estticas 5. Interfaces y clases abstractas 6. Excepciones 22. Curso de Introduccin a PHP 5 3.6. Excepciones Tema 3. PHP 5 y POO Objeto especial que hereda de la clase Exception Su misin es recopilar e informar errores El constructor acepta dos parmetros, mensaje de error y cdigo de error. Cmo se lanza un error? throw new Exception(Se ha lanzado una excepcin); Cmo se recoge una excepcin? try{ // cdigo que puede lanzar una excepcin }catch($e Exception){ // gestionamos las posible excepcin die($e->getMessage()); } 23. Curso de Introduccin a PHP 5 3.6. Excepciones Tema 3. PHP 5 y POO Extender la clase excepcin: 1. Aadir nuevas funcionalidades 2. Mejorar el manejo de errores Algunos mtodos pblicos de Exception getMessage() Devuelve el mensaje que se le pas al constructor getCode() Devuelve el cdigo que se le pas al constructor getFile() Devuelve el archivo donde se lanz la excepcin getLine() Devuelve la lnea donde se lanz la excepcin