Programación orientada a objetos Capítulo 9 Algo mas sobre herencias.

Slides:



Advertisements
Presentaciones similares
ANALIZADOR SEMANTICO DIANA CAROLINA CASTAÑO YANCI VIVIANA CASTRO PEDRO LUIS FLÓREZ SANTIAGO GUTIÉRREZ A.
Advertisements

Curso de java básico (scjp)
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Definición de Clases y Variables de referencia.
POLIMORFISMO UNIDAD 4.
Herencia en C#.
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Herencia simple y multiple
Arquitectura CLARO-TECNOTREE
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
Inner classes CAPITULO 8.
Capitulo 4 Excepciones.
Informática II Prof. Dr. Gustavo Patiño MJ
Herencia y Polimorfismo
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Aplicación del paradigma orientado a objetos
Diseño y programación de
PROGRAMACION ORIENTADA A OBJETOS
Objetos y Clases en Java
Programación Orientada a Objetos en Java
DIAGRAMA DE CLASE.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
HERENCIA.
Modificadores.
Herencia y Polimorfismo en JAVA
Introducción a Java II.
Lic. Rosemary Torrico Bascopé
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
6. Herencia. Clases abstractas. Genericidad
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Jerarquía de Clases: Herencia, Composición y Polimorfismo
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Abstracción de Datos y Orientación a Objetos.. Vista General. Por qué la abstracción de datos y la programación orientada a objetos. Módulos y módulos.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION A OBJETOS.
1 Objetos y Clases en Java ELO-329: Diseño y Programación Orientados a Objetos.
Métricas Técnicas para Sistemas Orientados a Objeto
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2008.
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
Tema 8: Herencia Antonio J. Sierra.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Informatica II1 Clases Extendidas La clase extendida hereda los campos y métodos de la clase que ha sido extendida. La clase original se conoce como superclase.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SEIS DESARROLLO, INNER CLASSES.
Programación orientada a objetos
Introducción a la Programación Orientada a Objetos (POO)
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Herencia y Clases Abstractas
UML Casos de Uso (repaso) y Diagramas de Clase
CONCEPTOS.
Conceptos. -Programación orientada a eventos. -Instancias de clase. -Atributo de los objetos. -Método main, get y set. -Ejemplo de la declaración de.
FUNDAMENTOS DE PROGRAMACION
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
Clases “ Es una Abstracción de un elemento del mundo real ”
Diagrama de Clases.
Herencia en C++ Agustín J. González ELO329. Diseño y Programación Orientados a Objetos 2 Motor ElectricMotor Motor y ElectricMotor Consideremos dos clases.
Herencias Conceptos básicos i
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
2015-BM5A. Introducción Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Modelado UML Diagrama de Clases
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Programación orientada a objetos Capítulo 9 Algo mas sobre herencias

¿Cuál es el problema? El método print en la clase Elemento solo imprime los campos comunes La herencia es de sentido único: – Una subclase hereda los campos de la superclase – Pero la superclase no sabe nada de los campos de las subclases

Version 1: método display en la superclase

¿Cómo solucionarlo? Una forma sería implementar print() en cada subclase Elemento no tiene método imprimir. El método imprimir está en la subclase Pero las subclases no tienen acceso a los campos private – elemento.print() el compilador dará error Y Database no podría encontrar el método print() en Elemento

9.2 Tipos estáticos y dinámicos El compilador comprueba si se producen violaciones de tipos estáticos – El compilador no conoce “el tipo dinámico”, porque se asigna en tiempo de ejecución Para que funcione, la clase Elemento debe tener un método “imprimir”

9.3 Sobreescribir (overriding) sustitución de métodos

Sobreescritura La superclase y las subclases definen métodos con la misma signatura – Mismo nombre y tipo de parámetros y valor de retorno Cada uno tiene acceso a los campos de su clase La superclase satisface la comprobación de tipos estática El método de la subclase se llama durante la ejecución: sobreescribe la versión de la superclase

9.4 Búsqueda dinámica de métodos Si no se aplica ni herencia ni polimorfismo Se seleccionará el método obvio

Búsqueda de un método cuando hay herencia Herencia sin sobreescritura. Se va subiendo por la jerarquía de herencia hasta encontrar el método llamado

Búsqueda con pilomorfismo y sobre escritura Polimorfismo y sobreescritura. Se utiliza la primera versión que se encuentre en la jerarquía

Búsqueda dinámica del método En resumen: – Se accede una variable – Se encuentra el objeto referenciado por la variable – Se encuentra la clase del objeto – Se busca el método correspondiente en la clase – Si no se encuentra, se busca en la superclase – Esto se repite hasta encontrar el método correspondiente Si se llega al final de la jerarquía sin encontrarlo, se producirá una excepción

9.5 Llamada a “super” en métodos

9.6 Polimorfismo de métodos

9.7 Método object: toString el método toString() devuelve una cadena que representa el objeto por defecto como: Al sobreescribirlo se puede hacer que devuelva una cadena formada a partir de valores de atributos del objeto

9.7 Método object: toString Reescribimos el método “toString”

9.9 Acceso “protegido” El acceso private en la superclase puede ser demasiado restrictivo para una subclase Para permitir a las subclases el acceso a campos y métodos de la superclase se utiliza protected – Es más restrictivo que el acceso public No obstante, en general sigue siendo recomendable el acceso private – Y usar métodos de lectura (get) y modificación (set)

9.9 Acceso “protegido”

Control de acceso a miembros de una clase private – Acceso sólo dentro de la clase public – Acceso desde cualquier lugar protected – Acceso en las subclases (en cualquier paquete) y desde las clases del propio paquete package – (por defecto, no se pone nada).

Resumen de niveles de acceso

9.10 el operador “instanceof” Para averiguar el tipo dinámico de un objeto