Professional Documents
Culture Documents
Introduccin a OO
Class nada extends vacio { abstract function blablabla(); }
Caractersticas de la OOP
Encapsulacin. Herencia. Polimorfismo.
Caractersticas de la OOP
Encapsulacin. Agrupar funcionalidad (operaciones) y datos relacionados (atributos) juntos en una estructura coherente (clases) Las clases representan tipos de datos complejos y las operaciones que sobre estos actan. Un objeto es una particular instancia de una clase.
Caractersticas de la OOP
Encapsulacin. Agrupar funcionalidad (operaciones) y datos relacionados (atributos) juntos en una estructura coherente (clases) La idea es abstraer la realidad. Por ejemplo si presionas una tecla en tu laptop, realmente no sabes que esta sucediendo en el interior. Para ti es lo mismo cuando vas al cajero y presionas los dgitos de tu clave. Entonces se dice que la interface es la misma.
El problema de la duplicacin
La duplicacin mantenibilidad. de cdigo contradice a la
El problema de la duplicacin
Se puede mejorar teniendo como resultado el siguiente cdigo:
El problema de la duplicacin
En un enfoque podras crear clases Animal Persona extiendan de clase base. OO las y que una
Herencia Encadenada
Algunos lenguajes de programacin permiten heredar de varias clases a la vez; esto es conocido como herencia mltiple. PHP5 no permite herencia mltiple, pero s herencia encadenada, es decir, permite heredar de varias clases padres correlativamente. Un ejemplo es:
Clase A Clase B Extiende A Clase C Extiende B
Herencia Encadenada
Polimorfismo
Es la capacidad que poseen diferentes objetos de responder a un mtodo o funcin del mismo nombre.
Polimorfismo
Tenemos un calendario(una coleccin) con entradas de dos tipos normal y feriado.
Polimorfismo
Con un enfoque orientado a objetos podra lucir as:
Beneficios: No se tiene que modificar el bucle para que pueda funcionar con nuevos tipos de das. Es mas rpido porque no se realiza el chequeo del tipo .
Mtodos Mgicos
En php tal vez en algn momento desees esto:
El metodo __toString() permite a una clase definir como se comportara cuando se le trata como una cadena.
Constructores
PHP5 permite a los desarrolladores declarar constructores para sus clases. Cada clase que posee un constructor llama a este mtodo al crearse cada nuevo objeto. El constructor de la clase padre no es llamado de forma implcita si las clases hijo definen su propio constructor. Para llamar al constructor de la clase padre :
parent::__construct()
Constructores
Por compatibilidad tambin se puede llamar al constructor con el estilo anterior(nombre de clase)
Destructores
PHP5 introduce el concepto de destructor que es similar a otros lenguajes orientados a objetos como C++, Java, etc. Este mtodo es llamada cuando no queda referencia alguna del objeto. En el mismo caso que los constructores, un mtodo destructor de una clase padre no puede ser llamado de forma implcita desde una clase hijo:
parent::__destruct()
Destructores
Visibilidad
La visibilidad de las propiedades o mtodos se define mediante las palabras reservadas:
public private protected
Los mtodos pblicos pueden ser accedidos desde cualquier otra clase. Los mtodos protegidos solo dentro de la clase y sus clases derivadas. Los mtodos privados solo dentro de la clase.
Visibilidad
La visibilidad de las propiedades o mtodos se define mediante las palabras reservadas:
public private protected
Los mtodos pblicos pueden ser accedidos desde cualquier otra clase. Los mtodos protegidos solo dentro de la clase y sus clases derivadas. Los mtodos privados solo dentro de la clase.
Visibilidad
Visibilidad