Está en la página 1de 19

Unidad I

Programacin Orientada a Objetos


1.3 Tcnicas de POO
Tcnicas de POO
Tcnicas de la POO
Abstraccin
Encapsulamiento y ocultacin de datos
Herencia
Polimorfismo
Reusabilidad o reutilizacin de cdigo



Tcnicas de POO
Abstraccin




Nivel general(Interfaz) Nivel detallado(implementacin)

Propiedad que considera los aspectos ms notables del problema
y expresa la solucin en esos trminos.
Representa la informacin de la interfaz con el usuario.
La abstraccin se representa con una clase que implementa la
interfaz correspondiente.
Los grados de la abstraccin se denominan niveles de abstraccin.

Tcnicas de POO
Abstraccin
La interfaz ser una clase que nos diga como utilizar los servicios
que nos provee (comportamientos).
La clase tambin implementa la interfaz, donde se detalla como
realmente se construye el servicio, pero es desconocido por los
usuarios (otras clases) de los servicios.
Las dems clases (usuarios) ocuparan simplemente los servicios
de la interfaz, nunca sabrn como se implementan.

Ejemplo: El auto me permite acelerar eso me interesa.QUE HACE

Y como funciona realmente ese mecanismo eso no me
interesa.COMO LO HACE

Tcnicas de POO
Encapsulamiento y Ocultacin de Datos
La encapsulacin es la reunin en una estructura, de todos los
elementos que en un nivel de abstraccin se consideran parte de
una misma entidad (categora o clase).

Tambin es agrupar los datos y operaciones relacionados bajo una
misma unidad de programacin (cohesin alta, o bien, las
caractersticas estn fuertemente relacionadas).

La encapsulacin oculta lo que hace un objeto de lo que hacen
otros objetos; por eso se le llama tambin ocultacin de datos.

La interfaz (operaciones o mtodos) de una clase es como un
contrato en la que ofrece sus servicios a otros componentes
externos (por ejemplo, otras clases).



Tcnicas de POO
Herencia
Clase Padre: Animal.
Clases hijas: Mono, Jirafa, Leon, Elefante.
Las clases se dividen en subclases.

Tcnicas de POO
Herencia
Trata de modelar la herencia como en la vida real.

La idea es que las clases hijas (subclases) comparten
caractersticas con la clase padre (superclase o clase principal).

Adems de las caractersticas compartidas, cada subclase tiene
sus propias caractersticas.

La clase padre tambin se le conoce como: principal, superclase o
base.

Las clases hijas tambin se les conoce como: subclase o derivada.

Tcnicas de POO
Jerarqua de Clases: Generalizacin / Especializacin
La jerarqua de clases gestiona la complejidad ordenando objetos
en rboles de clases con niveles crecientes de abstraccin.

Las jerarquas de clases ms conocidas son la generalizacin y la
especializacin.

La relacin de generalizacin es un concepto fundamental de la
POO y consiste en relacionar una superclase padre con una o
varias subclases hijas.

Se le llama tambin extensin o herencia.

Tcnicas de POO
Jerarqua de Clases: Generalizacin / Especializacin
La relacin de generalizacin se representa con una flecha que
comienza en la subclase y termina en la superclase.
En UML esta relacin se conoce como generalizacin y en POO
como herencia.
Estas relaciones no tienen nombre ni multiplicidad.
Hay que tomar en cuenta que la herencia es transitiva: una clase
hereda de todas las clases antecesoras.

Clases Abstractas
Una operacin abstracta
no tiene implementacin
de mtodos, solo la
signatura o el prototipo.

Si la clase tiene al menos
una operacin abstracta,
entonces es una clase
abstracta.


Tcnicas de POO
Tcnicas de POO
Clases Abstractas: Hablemos de Clases Concretas
Una clase vehculo debe tener operaciones abstractas que
identifiquen el comportamiento de todos los vehculos (acelerar,
frenar, arrancar, etc.).

Una clase concreta es lo contrario a una clase abstracta. No tiene
mtodos abstractos, por lo tanto, puede instanciarse o crear
objetos de ella.

Las subclases heredan operaciones de una superclase comn, pero
dichas operaciones se implementan de modo diferente en cada
una de ellas.

Unas subclase puede redefinir las operaciones de la superclase o
bien la implementan tal y como esta definida.



Tcnicas de POO
Herencia Simple
La clase padre es ms general que la clase hija.

Una clase hija puede ser a su vez clase padre de otra clase hija.

En UML, la relacin que une una clase padre con una hija, es una
lnea que termina con una punta de flecha apuntando a la clase
padre, y representa la herencia.

Si una clase no tiene padre es una clase base o raz. Sino tiene
hijas se denomina clase terminal o clase hija.

Si una clase tiene solo un padre, eso es herencia simple.
Si una clase tiene ms de un padre, tiene herencia mltiple.


Tcnicas de POO
Herencia. Niveles de herencia.
La jerarqua de herencia puede tener mas de dos niveles.
Una clase hija puede ser una clase padre, a su vez, de otra clase
hija.

Nivel 0
Nivel 1
Nivel 2
Tcnicas de POO
Accesibilidad y visibilidad en los atributos y operaciones
de una clase.
Aplicando la tcnica de ocultacin de datos, los objetos no deberan
acceder directamente a los datos de otro objeto.
El mecanismo para ocultar datos es declarar los atributos de la clase
de tipo privado (-).
Para controlar el acceso a los atributos y operaciones de una clase, se
utilizan tres especificadores de acceso:
Pblico (+): accesible por todas las operaciones de la clase en
cual se ha definido y desde otros objetos,
Privado (-): accesibles solo por las operaciones de la clase en cual
se ha definido,
Protegido (#): pueden ser accedidos por las operaciones de las
clases derivadas (subclases o hijas en la herencia).
Tcnicas de POO
Accesibilidad y visibilidad en la herencia.
En una clase existen secciones:
Pblicas : accesibles a todas las funciones,
Privadas: accesibles solo a los miembros de la clase en que estn
definidos y
Protegidas: pueden ser accedidos por clases derivadas.

Por lo que, hay 3 tipos de herencia: publica, privada y protegida.

Para ocultar los detalles de la clase base y de clases y funciones
externas a la jerarqua de clases, una clase base utiliza normalmente
elementos protegidos en lugar de elementos privados.

Tcnicas de POO
Polimorfismo.
Es la propiedad que permite a una operacin (funcin) tener el
mismo nombre en clases diferentes y actuar de modo distinto en
cada una de ellas.
Una misma operacin puede realizar diferentes acciones
dependiendo del objeto sobre el que se aplique.
Ejemplos. Abrir una puerta, abrir una ventana, abrir un libro, abrir
una cuenta de ahorros.
En cada caso se realiza una operacin diferente.









Tcnicas de POO
Sobrecarga de operadores y funciones.
Es un tipo especial de polimorfismo.

La sobrecarga bsica de operadores existe siempre.

El operador + sirve para sumar nmeros enteros o reales, y
concatenar cadenas; pero si desea sumar nmeros complejos, hay
que sobrecargar el operador + para que permita realizar esta suma.

El uso de operadores o funciones en forma diferente, dependiendo
de los objetos sobre los que esta actuando se denomina
polimorfismo (una cosa con distintas formas).











Tcnicas de POO
Interfaces.
Permite declarar un conjunto de constantes y de cabeceras de
mtodos abstractos. Estos deben implementarse en las clases y
constituyen su interfaz.

Forma de declarar que todos los mtodos de una clase son pblicos
y abstractos; con ello se especifica el comportamiento comn de
todas las clases que implementen la interfaz.






Tcnicas de POO
Reusabilidad o reutilizacin de cdigo.
Una vez que se ha creado, escrito y depurado una clase, se puede
poner a disposicin de otros programadores.

La herencia ampla a la reusabilidad. A una clase existente se le
pueden aadir nuevas caractersticas, derivando una nueva clase
de la clase existente.

Esta tcnica es uno de los grandes beneficios de la POO.

Cules son las ventajas de la herencia?
1. Reduccin de cdigo.
2. Admitir el concepto de abstraccin de la funcionalidad comn.

También podría gustarte