SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION A OBJETOS.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

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.
Lenguaje de programación Java
SCJP Sun Certified Programmer for Java 6
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
La Programación Orientado a Objetos
Inner classes CAPITULO 8.
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Aplicación del paradigma orientado a objetos
Diseño y programación de
PROGRAMACION ORIENTADA A OBJETOS
HERENCIA.
4.- Orientación a Objetos Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.
Medio de tele-comunicación
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
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.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CINCO CONSOLE.
Introducción a la programación Orientada a objetos
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
I NSTITUTO TECNOLOGICO SUPERIOR DE LIBRES INGENIERIA EN SISTEMAS COMPUTACIONALES PROGRAMACION ORIENTADA A OBJETOS ESMERALDA LIMON ESCUTIA REDEFINICION.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
SCJP Sun Certified Programmer for Java 6
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
Introducción a la POO • ¿Qué es la programación orientada a objets (POO)? – Un “paradigma” de programación – Una forma de pensar acerca de los problemas.
Programación orientada a objetos
Informática II Interfaces zLas interfaces declaran un tipo que se componen sólo de métodos abstractos y constantes. zLa definición de una clase hace pensar.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CUATRO CONTROL DE FLUJOS, EXCEPCIONES Y ASERSIONES.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
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.
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) CONCEPTOS DE PROGRAMACION.
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.
PROGRAMACION ORIENTADA A OBJETOS POR OVER YESID BARRERA FERNANDEZ.
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Detalles Generales sobre Java
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SEIS DESARROLLO, INNER CLASSES.
Algoritmos y Programación III
Programación orientada a objetos
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Herencia y Clases Abstractas
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
UNIVERSIDAD TECNICA DE BABAHOYO EXTENSION DE QUEVEDO  Espinales Lisseth G RUPO N º 2 Temas:  Herencia  Polimorfismo  Encapsulamiento  2 Ejemplos Estudiante.
Programación orientada a objetos Capítulo 9 Algo mas sobre herencias.
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 ”
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.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
 En Java, como en otros lenguajes de programación orientados a objetos, las clases pueden derivar desde otras clases. La clase derivada (la clase que.
PARADIGMA viene del Griego Paradeima = Modelo. Un paradigma es el resultado de los usos, y costumbres, de creencias establecidas de verdades a medias,
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.
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.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versió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:

SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6

SEMANA DOS ORIENTACION A OBJETOS

ENCAPSULACION

RECORDANDO: Una clase esta compuesta por metodos que determinan el comportamiento de los objetos y por atributos que representan las caracteristicas (estado) de los objetos. Que es la Encapsulacion Mantener los atributos de los objetos como privados y proporcionar acceso a los mismos a traves de metodos publicos.

ENCAPSULACION ¿Qué beneficios obtengo al usarla? Proteccion de datos “sensibles” Facilidad y flexibilidad en el mantenimiento de las aplicaciones ¿Cómo hago para que mi clase sea una clase encapsulada? Mantener las variables de instancia protegidas(private) Mantener publicos mis accessors y mutators Usar las convenciones de JavaBeans

EJEMPLO DIAGRAMADO DE ENCAPSULACION

REFLEXION El código anterior es realmente útil? Ejemplo erróneo de encapsulación:

HERENCIA, IS-A, HAS-A

HERENCIA Capacidad de crear clases que adquieran de manera automatica los miembros (atributos y metodos) de otras clases que ya existen, pudiendo al mismo tiempo añadir atributos y metodos propios

HERENCIA Promover la reutilización de código. Aquellos casos donde se necesite crear una clase que deba incluir los metodos definidos en otras, la herencia evita tener que reescribir todos esos metodos. Usar polimorfismo La posibilidad de utilizar una misma expresion para invocar a diferentes versiones de un mismo metodo.

HERENCIA Método equals. Palabra reservada instanceof.

HERENCIA Ejemplo:

EJEMPLO

HERENCIA El punto clave es que el metodo doShapes() es declarado con un argumento de tipo GameShape, y en la invocacion le estamos pasando un subtipo, es decir, una subclase de GameShape

IS-A En la Orientacion a Objetos, el concepto IS-A (Es Un) esta basado en la herencia o implementación de interfaces. IS-A es una forma de decir: Esta “cosa” es un tipo de aquella otra “cosa” public class Vehicle {... } public class Car extends Vehicle {... } public class Subaru extends Car {... }

IS-A En terminos de POO, lo anterior se puede entender como. Vehicle es la superclase de Car. Car es la subclase de Vehicle Subaru es la subclase de Vehicle Car hereda de Vehicle Subaru hereda de ambas Vehicle y Car Subaru deriva de Car Car deriva de Vehicle Subaru deriva de Vehicle Subaru es un subtipo de ambas Vehicle y Car

IS-A Car hereda de Vehicle Significa que Car IS-A Vehicle Subaru hereda de Car Significa que Subaru IS-A Car y Subaru tambien es un Vehicle

HAS-A Esta basada en composición. En otras palabras, una clase A Tiene-Un B si el codigo de la clase A tiene una referencia a una instancia de la clase B Ejemplo: public class Animal { } public class Horse extends Animal { private Bozal miBozal; }

POLIMORFISMO

En Java si pasa mas de un IS-A se considera polimorfico Variables de referencia: No puede cambiar su tipo una vez declarada. Puede referenciar a otros objetos El tipo de una variable de referencia determina que métodos puede utilizar. Puede referenciar a un objeto de su mismo tipo o a cualquier objeto que haya heredado de ella.

HERENCIA MULTIPLE Recordando: Una clase puede heredar de solo una clase e implementar una o mas interfaces. Una interface solo puede heredar una o varias interfaces El Diamante de la muerte En Java no se permite la herencia multiple, es decir, una clase no puede heredar de mas de una.

HERENCIA MULTIPLE

PlayerPiece puede ser poliformicamente en 4 diferentes formas: Como un Object (todas las clases heredan de la clase Object) Como un GameShape (PlayerPiece extends GameShape) Como una PlayerPiece Como un Animatable (PlayerPiece implements Animatable)

HERENCIA MULTIPLE Declaraciones legales: PlayerPiece player = new PlayerPiece(); Object o = player; GameShape shape = player; Animatable mover = player;

EJERCICIOS Probar herencia con clases Probar implementación de interfaces con clases Probar polimorfismo con clases Todas las clases deben tener sus metodos

SOBRE-ESCRITURA Y SOBRECARGA DE METODOS

S OBRE - ESCRITURA DE MÉTODOS. Se puede usar la sobre-escritura al heredar métodos de una clase.

S OBRE - ESCRITURA DE MÉTODOS. Al heredar de una clase abstracta es forzoso implementar sus métodos abstractos. Se puede usar el polimorfismo (que una referencia se pueda comportar de diferentes maneras) con la sobre-escritura de métodos.

EJEMPLO

SOBRE-ESCRITURA DE MÉTODOS. En el ejemplo anterior estamos invocando a un metodo de la clase Horse teniendo una referencia de tipo Animal. Recuerda: Teniendo una referencia de Animal, el compilador solo permitira invocar metodos que esten en la clase Animal.

S OBRE - ESCRITURA DE MÉTODOS. Los métodos sobre-escritos no pueden tener un modificador de acceso menor al que se declararon, pueden tener uno mayor o igual, pero nunca uno menor.

E JEMPLO CON ERROR

R EGLAS PARA LA SOBRE - ESCRITURA DE MÉTODOS. Si tengo un método en una superclase el cual deseo sobre-escribir en una subclase, el método escrito en la subclase debe cumplir lo siguiente: Debe tener exactamente la misma lista de argumentos El valor de retorno debe ser del mismo tipo o de algún subtipo El nivel del modificador de acceso no puede ser mas restrictivo. El nivel del modificador de acceso puede ser mas amplio o igual. Solo pueden ser sobre-escritos los métodos de instancia que no hayan sido marcados como private, final, static. Puede lanzar cualquier unchecked(runtime) exception No debe lanzar ningún tipo de checked exeption que no haya sido declarado en el método de la superclase.

INVOCAR UN MÉTODO DE LA SUPERCLASE Para invocar un metodo de la superclase se utiliza la keyword super

E RRORES El codigo anterior no compila por la Excepcion declarada en el metodo eat() de Animal

EJEMPLO DE SOBRE-ESCRITURAS ILEGALES Tenemos que: Imagina que una clase hereda e implementa independientemente cada metodo de esta tabla.