La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitectura CLARO-TECNOTREE

Presentaciones similares


Presentación del tema: "Arquitectura CLARO-TECNOTREE"— Transcripción de la presentación:

1 Arquitectura CLARO-TECNOTREE
Aplicaciones Java y Arquitectura CLARO-TECNOTREE CAPITULO 2: Aplicación del Paradigma OO

2 Diseño y programación de
herencia de clases: Concepto de Herencia. La herencia es un concepto central de la POO. Responde al mecanismo de especialización y generalización. La herencia es un tipo de relación “es un” donde cada clase puede tener una clase ancestro y clases descendientes. Uno de los mecanismos de abstracción es el de generalización que tiene que ver con las taxonomías, permite definir una clase o tipo como un caso general de varias clases o tipos. Por ejemplo, defino la clase de los cuadriláteros a partir de los paralelogramos, rectángulos y rombos. La operación inversa se llama especialización y es la que permite definir clases como casos particulares de otras más generales.

3 Diseño y programación de herencia de clases:
Gracias a este tipo de relación cada clase hereda atributos y comportamiento de su clase ancestro.

4 Diseño y programación de herencia de clases:
En este conjunto de clases se plantea la relación de herencia. Cada clase tiene su superclase o clase ancestro (clase superior en la jerarquía) y cada clase puede tener una o más subclases (clases inferiores en la jerarquía). Los constructores no se heredan Ejercicio: Se debe implementar un generador de listados de los clientes de una empresa que debe ser armado en un archivo PDF a partir de la BD. la BD. Este listado en pdf debe ser posible imprimirlo por impresora y enviarlo por mail. Se deben definir las clases necesarias para dar soporte a este requerimiento.

5 Diseño y programación de herencia de clases: Reutilización y extensión
Llamamos reutilización al uso de clases u componentes desarrollados y probados en un determinado contexto, para incorporar esa funcionalidad en una aplicación diferente a la de origen. La extensión se basa en aprovechar las clases desarrolladas para una aplicación, utilizándolas en la construcción de nuevas clases para la misma u otra aplicación. La extensión es una forma de aplicar la reutilización ya que aprovechamos la definición de una clase para luego agregar más funcionalidad o modificar alguna existente.

6 Diseño y programación de herencia de clases: Reutilización y extensión
Cuando usamos herencia, lo que se está reutilizando es la interfaz, que es lo que ven los clientes. Cualquier mensaje que pueda recibir un objeto de la clase ancestro lo podrá recibir también uno de las clases descendientes, a demás de poder recibir mensajes que invoquen métodos que sólo existen en la clase descendiente. De aquí deducimos que los métodos declarados en la clase descendiente no van a estar en la clase ancestro.

7 Diseño y programación de herencia de clases: Consideraciones en la aplicación de Herencia
Una clase hereda todos los miembros de su superclase, excepto los constructores. Esto se debe principalmente a que la estructura interna de datos de un objeto de una subclase, estará formada por los atributos que ella define y por los heredados de su superclase. Una subclase no tiene acceso directo a los miembros privados (private) de su superclase. Esto debe ser así para cumplir con el principio de encapsulamiento (este concepto estudiaremos más adelante). Una subclase puede tener acceso directo a los miembros públicos (public) y protegidos (protected) de su superclase.

8 Diseño y programación de herencia de clases: Consideraciones en la aplicación de Herencia
En el caso de que la subclase pertenezca al mismo paquete que el de su superclase, si puede tener acceso a los miembros predeterminados (miembros sin modificador de acceso establecido por el programador). Una subclase puede agregar sus propios miembros, a pesar de los ya heredados desde su superclase. No se puede aplicar la herencia múltiple en Java, una clase puede heredar de una sola clase.

9 Diseño y programación de herencia de clases: Consideraciones en la aplicación de Herencia
Si se quiere que una clase no permita que se extienda de la misma, que no posea subclases, se la debe declarar cómo final. Por ejemplo: public final class Util { //Cuerpo de la clase }

10 Diseño y programación de herencia de clases: Interfaces
Una interfaz define un conjunto de mensajes que pueden recibir las clases que la implementan, donde cada una debe responder de acuerdo a la implementación que dio a cada uno de estos métodos. En conjunto estas operaciones especifican un servicio. Sintaxis para definir una interfaz en Java: interface y el cuerpo de la interfaz entre llaves {}. [public] interface nombre_interfaz [extends interfaces] { //Cuerpo de la interfaz }

11 Diseño y programación de herencia de clases: Interfaces
La interfaz puede extender de otras interfaces, no de clases. Si no se especifica el modificador de acceso public, la interfaz sólo será accedida para las clases definidas en el mismo paquete. El cuerpo de la interfaz posee las siguientes características: Sólo puede poseer atributos estáticos y con valor constante. En el caso de que no se especifique que el atributo es estático (static) y constante (final) automáticamente se establece con estas características. El modificador de acceso es público.

12 Diseño y programación de herencia de clases: Interfaces
Los métodos deben ser públicos (public) y no pueden ser estáticos o de clase. Si no especifica el modificador de acceso public, automáticamente el método se establece como tal. Los métodos no son implementados, solo se especifica hasta los parámetros que puede recibir entre (…) y luego se finaliza con un “;”. public int metodo_prueba ([lista_parametros]); Las clases que implementen la interfaz son las que implementarán el cuerpo del método.

13 Diseño y programación de herencia de clases: Interfaces
La palabra extends permite que una interfaz extienda de otra; a continuación de la palabra extends se especifica la lista de interfaces Una interfaz hereda todas las constantes y métodos de las interfaces de las cuales deriva, si en la interfaz existe un método o atributo con igual nombre que algunos de los métodos o atributos de las interfaces que deriva, vale el método o atributo de la interfaz que estamos definiendo. El mismo análisis vale para una clase que implementa una interfaz.

14 Diseño y programación de herencia de clases: Interfaces

15 Diseño y programación de herencia de clases: ENCAPSULAMIENTO
Se debe tener antes en claro el concepto de abstracción y ocultamiento de la implementación. La abstracción consiste en identificar las características esenciales de un objeto, así como su comportamiento. De esta manera logramos definir las distintas clases de nuestro sistema y la relación entre las mismas. El ocultamiento de la implementación tiene por objetivo que el cliente no use la estructura interna de la clase. Se puede usar nada más que la interfaz de nuestra clase pero no la implementación. El ocultamiento nos permite restringir y controlar el uso de la clase.

16 Diseño y programación de herencia de clases: ENCAPSULAMIENTO
El encapsulamiento tiene por objetivo concentrar las características y comportamiento de un objeto en un solo lugar, es decir, en una clase. Cada clase se preocupa de sí misma y tiene todo encapsulado en su interior, cada clase debe desacoplar a las demás de sus detalles internos, solo debemos saber cómo usar sus servicios a través de su interfaz. Evidentemente esto nos permite dominar la complejidad y el concepto de encapsulamiento se cumple aplicando los de abstracción (concentrando las características esenciales y comportamiento de un objeto en una clase) y ocultamiento de implementación (ocultando los detalles internos de la clase, evitar que el cliente sea dependiente de una implementación en particular)


Descargar ppt "Arquitectura CLARO-TECNOTREE"

Presentaciones similares


Anuncios Google