Sesion - 1
Sesion - 1
Sesion - 1
SESIÓN – 1
Introducción a POO
Desarrollo:
Los conocimientos explicados en este manual servirán para poner en práctica la POO en cualquier lenguaje
que se pueda llegar a usar.
Su uso se hizo conocido a principios de la década de 1990. En la actualidad, existe una gran variedad de
lenguajes de programación que soportan la orientación a objetos, uno de estos lenguajes es PHP el cual tiene
la característica de permitir programar con esta metodología.
En la duración de este curso se darán a conocer los conceptos básicos, ventajas y desarrollo de esta
metodología, así como también es muy importante analizar los ejercicios implantados en las sesiones, los
cuales podrán modificarlos y tratar de resolver los problemas propuestos en clase.
La Programación Orientada a Objetos (POO) es un patrón o modelo de programación que usa objetos en sus
interacciones, para diseñar aplicaciones y programas informáticos.
Está basada en varias técnicas que incluyen: herencia, cohesión, abstracción, polimorfismo, acoplamiento y
encapsulamiento.
Lo interesante de la POO (programación orientada a objetos) es que proporciona conceptos y herramientas
con las cuales se modela y representa el mundo real tan verídico como sea posible.
a. Abstracción
La abstracción consiste en captar las características esenciales de un objeto, así como su
comportamiento.
Por ejemplo, ¿Qué características podemos abstraer de los automóviles? O ¿Qué características
semejantes tienen todos los automóviles? Todos tendrán una marca, un modelo, número de chasis,
peso, llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento todos los automóviles podrán
acelerar, frenar, retroceder, etc.
b. Encapsulamiento
El encapsulamiento consiste en unir en la clase las características y comportamientos (variables y
métodos). Es tener todo esto es una sola entidad.
La utilidad del encapsulamiento va por la facilidad para manejar la complejidad, puesto que se tendrá a
las clases como cajas negras donde sólo se conoce el comportamiento pero no los detalles internos, y
es conveniente porque nos interesará conocer qué hace la clase pero no será necesario saber cómo lo
hace.
c. Ocultamiento
Es la capacidad de ocultar los detalles internos del comportamiento de una clase y exponer sólo los
detalles que sean necesarios para el resto del sistema.
El ocultamiento permite 2 cosas: restringir y controlar el uso de la clase. Restringir porque habrá cierto
comportamiento privado de la clase que no podrá ser accedido por otras clases; y controlar porque se
implementa ciertos mecanismos para modificar el estado de nuestra clase y es en estos mecanismos
dónde se permite que algunas condiciones se cumplan.
d. Modularidad
Es la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada
una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes
partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al
igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas.
e. Polimorfismo
Se denomina polimorfismo a la capacidad que tienen los objetos de una clase de responder al mismo
mensaje o evento en función de los parámetros utilizados durante su invocación. Un objeto polimórfico
es una entidad que puede contener valores de diferentes tipos durante la ejecución del programa.
Dicho de otra forma, el polimorfismo consiste en conseguir que un objeto de una clase se comporte
como un objeto de cualquiera de sus subclases, dependiendo de la forma de llamar a los métodos de
dicha clase o subclases.
Una forma de conseguir objetos polimórficos es mediante el uso de punteros a la superclase. De esta
forma podemos tener dentro de una misma estructura (arrays, listas, pilas, colas, etc.) objetos de
distintas subclases, haciendo que el tipo base de dichas estructuras sea un puntero a la superclase.
f. Herencia
La herencia en la POO es la capacidad que tienen los objetos para heredar todas o algunas de sus estados
(atributos) y comportamiento (métodos) a sus descendientes o herederos, permitiendo así la
reutilización de código lo que en la práctica se traduce en una herramienta muy potente de
programación.
a. Objeto
El elemento fundamental de la POO es, como su nombre lo indica, el objeto.
Pero ¿Qué es un objeto? Un objeto representa una cosa simple o compleja que puede ser real o
imaginaria y que consta de un estado (atributos) y de un comportamiento (métodos) que a su vez constan
respectivamente de datos almacenados y de tareas realizables durante el tiempo de ejecución. Por
ejemplo los perros tienen estado (nombre, color, raza, hambriento) y comportamiento (ladrando, buscando,
meneando la cola).
Podemos definir un objeto como una entidad independiente de datos y programas que poseen
estructura y forman parte de una organización.
Esta definición especifica varias propiedades importantes de los objetos. En primer lugar, un objeto no
es un dato simple, sino que contiene en su interior cierto número de componentes bien estructurados.
En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organización jerárquica
o de otro tipo.
Un objeto es el resultado de la instanciación de una clase, se define como instanciar una clase a la
creación de un objeto, como ocurre en la programación orientada a objetos, o mediante escritura directa
de código y la replicación de otros objetos, como ocurre en la programación basada en prototipos.
b. Clase
La programación orientada a objetos (POO) se basa en la programación de clases; a diferencia de la
programación estructurada, que está centrada en las funciones.
Una clase es una plantilla o molde del que luego se pueden crear múltiples objetos, con similares
características; estos moldes agrupan comportamiento (métodos; lo que conocíamos anteriormente
como funciones) y estados (atributos; lo que anteriormente conocíamos como variables) de los futuros
objetos.
Debemos crear una clase antes de poder crear objetos (instanciar) de esa clase.
Una clase se compone de dos partes:
i. Atributos (denominados, por lo general, datos miembros): esto es, los datos que se refieren al
estado del objeto.
ii. Métodos (denominados, por lo general, funciones miembros): son funciones que pueden aplicarse
a objetos.
- Radio: float
Atributos - Perimetro: float
- Area: float
+ calculeArea()
+ calculePerimetro()
Métodos + imprimeArea()
+ imprimePerimetro()
+ lee()
Práctica en clases
Cuestionario