programacion orientada objetos

27
 PROGRAMACIÓN ORIENTADA A OBJETOS Conceptos y su aplicación en PHP Por Danilo Domínguez P. http://panamapost.blogspot.com

Upload: danilo-dominguez

Post on 13-Jun-2015

2.102 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Programacion Orientada Objetos

   

PROGRAMACIÓN ORIENTADA A OBJETOS

Conceptos y su aplicación en PHP

Por Danilo Domínguez P.http://panamapost.blogspot.com

Page 2: Programacion Orientada Objetos

   

Temario Conceptos y Fenómenos Clases y Objetos

Clase Objeto Método Atributo

Características de la POO Abstracción Encapsulamiento Ocultación Polimorfismo Herencia

Page 3: Programacion Orientada Objetos

   

TEMARIO

Clases en PHP Bases

Constructores y Destructores

Visibilidad

Operador de resolución y palabra reservada 'static'

Constantes

Abstracción

Interfaces

Page 4: Programacion Orientada Objetos

   

CONCEPTOS Y FENÓMENOS

Un fenómeno es un objeto del mundo tal como es percibido. Los siguientes son fenómenos: Mi libro de PHP Programming. Mi reloj negro.

Un concepto es una abstracción que describe un conjunto de fenómenos. Los siguientes son conceptos: Libros de texto sobre PHP Los relojes

Page 5: Programacion Orientada Objetos

   

CONCEPTOS Y FENÓMENOS

El concepto describe las propiedades que son comunes para un conjunto de fenómenos.

Un concepto está definido por una tercia: su nombre, su propósito (propiedades) y sus miembros. Ej: 

Nombre: Reloj Propósito: Medición de tiempo Miembros: reloj de pulser, reloj de pared. 

Page 6: Programacion Orientada Objetos

   

CLASES Y OBJETOS

Haciendo una analogía entre conceptos, fenómenos y clases y objetos, podemos decir que en un lenguaje de programación un concepto vendría siendo una clase y un fenómeno un objeto.

Clase RelojPared

Objetoobj_relojpared­>color = 'negro';obj_relojpared­>marca = 'xxxx';

Page 7: Programacion Orientada Objetos

   

CLASE

Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.

También puede decirse que las clases son declaraciones o abstracciones de objetos, lo que significa, que una clase es la definición de un objeto

Page 8: Programacion Orientada Objetos

   

OBJETO

Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos). 

Corresponden a los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). 

Es una instancia a una clase.

Page 9: Programacion Orientada Objetos

   

MÉTODO

Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". 

Desde el punto de vista del comportamiento, es lo que el objeto puede hacer.

Ejemplo si la clase es una calculadora, un objeto instanciado de esta clase tendría los métodos de suma, resta, etc.

Page 10: Programacion Orientada Objetos

   

ATRIBUTO

Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.

En otras palabras son las variables que están asociadas a una clase.

Ejemplo si la clase de Automovil, esta clase tiene los atributos marca, modelo, color, etc.

Page 11: Programacion Orientada Objetos

   

CARACTERÍSTICAS DE LA POO

Entre las características más importantes de la programación orientada a objetos tenemos: Abstracción Encapsulamiento Ocultación Polimorfismo  Herencia

Page 12: Programacion Orientada Objetos

   

ABSTRACCIÓN

Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. 

Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción.

Por ejemplo: tenemos una clase llamada Reloj. Esta clase sería una clase abstracta ya que esta es un modelo general para varios tipos de reloj (RelojPared). 

Page 13: Programacion Orientada Objetos

   

ENCAPSULAMIENTO

Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad (clase), al mismo nivel de abstracción. 

 Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.

Page 14: Programacion Orientada Objetos

   

OCULTACIÓN

Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase.

El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado (lo veremos en la visibilidad de atributos). 

Page 15: Programacion Orientada Objetos

   

POLIMORFISMO

Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando.

Page 16: Programacion Orientada Objetos

   

HERENCIA

Las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación.

Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. 

La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes.

Page 17: Programacion Orientada Objetos

   

CLASES EN PHP

PHP es un lenguaje que ha evolucionado bastante durante sus versiones.

Uno de los cambios que más llamó la atención en su versión 5, fue la programación orientada a objetos.

En PHP4 el diseño de clases era muy limitado a la hora de trabajar POO.

En PHP 5 hay un nuevo modelo de Objetos. El manejo de PHP de objetos ha sido reescrito por completo, permitiendo un mejor desempeño y mas características.

Page 18: Programacion Orientada Objetos

   

BASES

La declaración de una clase comienza con la palabra reservada class seguido del nombre de la clase (no debe llevar un nombre de una palabra reservada).

Seguido declaramos los atributos y los métodos de la clase. $this es una referencia al objeto que se está usando 

(usualmente el objeto al que el método pertenece, pero puede ser otro objeto, si un método es llamado estáticamente  desde el contexto de un objeto secundario).

Page 19: Programacion Orientada Objetos

   

CONSTRUCTORES

Las clases que tienen un método constructor llaman a este método cada vez que se crea un nuevo objeto, para cualquier inicialización que el objeto puede necesitar antes de ser usado.

En PHP5 los constructores se declaran con la palabra reservada __construct (a diferencia de PHP4 que se utiliza el nombre de la clase.

Un constructor no retorna un valor. 

Page 20: Programacion Orientada Objetos

   

DESTRUCTORES

PHP 5 introduce un concepto de destructor similar a los otros lenguajes de programación orientada a objetos, tal como C++.

 El método destructor será llamado tan pronto como todas las referencias a un objeto en particular sean removidas o cuando el objeto sea explícitamente destruido, o en cualquier orden en la finalizacion de la ejecución.

void __destruct(void)

Page 21: Programacion Orientada Objetos

   

VISIBILIDAD

La visibilidad de una propiedad o método puede ser definida al anteponerle a la declaración con las palabras reservadas: public, protected o private. 

Los elementos declarados con Public pueden ser accesados en todos lados. 

Los Protected limitan el acceso a las clases heredadas (y a la clase que define el elemento). 

Los Private limitan la visibilidad solo a la clase que lo definió.

Page 22: Programacion Orientada Objetos

   

OPERADOR ::

 El alcance del operador de resolución (también llamado Paamayim Nekudotayim) o en términos simples, dobles dos puntos, es un símbolo que permite acceso a los miembros o métodos estaticos, constantes, y eliminados de una clase.

Cuando se referencían estos elementos desde afuera de la definición de la clase, usan el nombre de la clase.

Dos palabras reservadas self y parent  son usadas para accesar los miembros o métodos desde adentro de la definición de la clase.

Page 23: Programacion Orientada Objetos

   

PALABRA RESERVADA 'static'

Declarar miembros de clases o métodos como estáticos, los hace accesibles desde afuera del contexto del objeto.

 Un miembro o método declarado como estático no puede ser accesado con una variable que es una instancia del objeto y no puede ser redefinido en una extensión de la clase.

La declaración static debe estar después de la declaración de visibilidad.

Page 24: Programacion Orientada Objetos

   

CONSTANTES

Es posible definir valores constantes en cada clase manteniendo el mismo valor y siendo incambiable.

 Las constantes difieren de las variables normales en que no se usa el símbolo $ para declararlas o usarlas.

 Como los miembros estáticos, los valores constantes no pueden ser accesados desde una instancia de un objeto (usando $object::constant).

Preferiblemente utilizen nombre con mayúscula cerrada,

Page 25: Programacion Orientada Objetos

   

ABSTRACCIÓN  PHP 5 introduce clases y métodos abstractos. 

No es permitido crear una instancia de una clase que ha sido definida como abstracta.

 Cualquier clase que contenga por lo menos un método abstracto debe también ser abstracta. 

Los métodos definidos como abstractos simplemente declaran los métodos, no pueden definir la implementación.

Cuando se hereda desde una clase abstracta, todos los métodos marcados como abstractos en la declaración de la clase padre, deben de ser definidos por la clase hijo; adicionalmente, estos métodos se deben definir con la misma o menor visibilidad. Si el método abstracto es definido como protected, la implementación de la función debe ser definida como protected o public, pero no private.

Page 26: Programacion Orientada Objetos

   

INTERFACES

 Las interfaces de objetos permiten crear código el cual especifica métodos que una clase debe implementar, sin tener que definir como serán manejados esos métodos.

Las interfaces son definidas usando la palabra reservada 'interface', de la misma manera que las clases estándar, pero sin que cualquiera de los métodos tenga su contenido definido.

Todos los métodos en una interface deben ser publicos, esto es la naturaleza de una interface. 

Para implementar una interface, se usa el operador implements. Todos los métodos en la interface deben ser implementados dentro de una clase; de no hacerse así resultará en error fatal. Las clases pueden implementar más de una interface si se desea al separar cada interface con una coma.

Page 27: Programacion Orientada Objetos

   

BIBLIOGRAFÍA

Ingeniería de Software Orientado a Objetos Autores: Bernd Brugge y Allen H. Dutoit Editora: Pearson Educación

Web: Wikipedia URL: 

http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos Manual de Referencia PHP