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.