:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
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:
POLIMORFISMO UNIDAD 4.
Programación Interactiva Fundamentos de Java. 2 Ejecución de un programa Para Java una clase ejecutable es aquella que es pública y tiene un método main()
Herencia en C#.
Fundamentos de la programación orientada a objetos
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
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Aplicación del paradigma orientado a objetos
Diseño y programación de
Rosalía Laza Fidalgo Reyes Pavón Rial Curso
Encapsulamiento y Abstracción
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
HERENCIA.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Herencia e Interfaces.
Medio de tele-comunicación
Modificadores.
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
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.
Tema 6: Clases Antonio J. Sierra.
Tema 10: Interfaces Antonio J. Sierra.
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.
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
ESTRUCTURA DE DATOS EN JAVA
Patrones Creacionales
Diplomado Desarrollo de Aplicaciones en Internet
Programación Orientada a Objetos
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION 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.
Patrones de diseño DECORATOR Mario Rodríguez Martín
Herramientas de polimorfismo y herencia en C++
FACULTAD DE ESTUDIOS SUPERIORES ARAGON
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2008.
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.
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.
Programación Orientada a Objetos
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Detalles Generales sobre Java
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
Programación orientada a objetos
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Clases “ Es una Abstracción de un elemento del mundo real ”
Herencias Conceptos básicos i
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
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.
RELACIONES ENTRE CLASES M.C. YOLANDA MOYAO MARTINEZ.
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 I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
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.
Programación Orientada a Objetos
Transcripción de la presentación:

:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación

Interfaces Programación I Una interface Java declara solo el contrato y no la implementación, parecido a una clase abstracta que difiere la implementación de sus métodos y los hace abstractos. Captura similitudes entre clases que no poseen relación de herencia y declara métodos útiles para ellas.

Interfaces Programación I Una interface contiene una colección de métodos que se implementan en otro lugar y también puede incluir constantes. Muchas clases pueden implementar la misma interface. Éstas clases no necesitan compartir la misma jerarquía de herencia. Otro beneficio de las interfaces es que permiten que una clase puede implementar mas de una interface.

Interfaces Programación I [public] interface NombredeInterface [extends listadeSuperInterfaces] { //Declaración de constantes //Declaración de métodos }

Interfaces Programación I Restricciones con las declaraciones de atributos: No se pueden utilizar los especificadores private y protected. Por defecto, las variables miembro son public, static y final.

Interfaces Programación I Restricciones con las declaraciones de los métodos: Sólo declaran comportamiento, no lo implementan. Por defecto, las definiciones de los métodos miembro son públicos y abstractos. No se pueden utilizar los especificadores private, protected, static, native, final y synchronized.

Interfaces Programación I [public] interface NombredeInterface [extends listadeSuperInterfaces] { //Constantes [public] tipo_dato final NOMBRECONSTANTE1 = valor; [public] tipo_dato NOMBRECONSTANTE2 = valor; … //Métodos [public] abstract tipoRetorno nomMetodo1(Parámetros Formales); [public] tipoRetorno nomMetodo2(Parámetros Formales); }

Interfaces Programación I public interface Control{ final int CantCanales = 32; /* Permite Encender ó Apagar el televisor */ void EncenderApagar( ); /* Permite cambiar el canal activo */ void CambiarCanal( ); /* Permite ajustar el volumen actual */ void AjustarVolumen( ); }

Interfaces Programación I Para que una clase pueda usar una interface, se utiliza la palabra clave implements y el nombre de la interface en la línea de declaración de la clase. La clase debe implementar todos los métodos de la interface. Si la clase no proporciona la implementación para todos los métodos de la interface debe ser declarada como abstracta. ¿Cómo usar una interfaz?

Interfaces Programación I public class Televisor implements Control { private String marca; private float costo; void EncenderApagar( ){ //código } void CambiarCanal( ){ //código } void AjustarVolumen( ){ //código } public void mostrar(){ System.out.println(marca+” ”+costo); }

Interfaces Programación I Imagine un grupo de objetos que comparten una misma habilidad: Volar, se podría implementar una interface que soporte las tres operaciones: despegar, aterrizar y volar. > Volar Despegar() Volar() Aterrizar() Avion Despegar() Volar() Aterrizar() HacerManiobras()

Interfaces Programación I public interface Volar{ void despegar(); void volar(); void aterrizar(); } public class Avion implements Volar { void despegar(){ //acelera hasta despegar } void volar(){ //mantener el vuelo } void aterrizar(){ //bajar hacia la tierra hasta tocarla y desacelerar } void HacerManiobras(){ //Hacer maniobras }

Interfaces Programación I Puede darse el caso, que múltiples clases implementen la interface Volar. > Volar Despegar() Volar() Aterrizar() Pajaro Despegar() Volar() Aterrizar() HacerNido() PonerHuevos() Avion Despegar() Volar() Aterrizar() HacerManiobras() Superman Despegar() Volar() Aterrizar() SaltarEdificios() PararBalas()

Interfaces Programación I Un Avión es un Vehículo y puede volar. Un pájaro es un animal y puede volar. Esto muestra que una clase puede heredar de una clase pero también puede implementar algunas interfaces. > Volar Despegar() Volar() Aterrizar() Pajaro Despegar() Volar() Aterrizar() HacerNido() PonerHuevos() Avion Despegar() Volar() Aterrizar() HecerManiobras() Superman Despegar() Volar() Aterrizar() SaltarEdificios() PararBalas() Animal Vehiculo HomoSapien public class HomoSapien extends Animal { … } public class Avion extends Vehiculo implements Volar { …} public class Pajaro extends Animal implements Volar { …} public class Superman extends HomoSapien implements Volar { … } AvionPajaroSuperman

Interfaces Programación I public interface Contador { int MAX_INT = ; void avanzar(); int obtenerValor(); } public class ContadorSegundos implements Contador { int valor; ContadorSegundos(){ valor = 0; } public void avanzar(){ valor++; if (valor>60) valor = 0; } public int obtenerValor(){ return valor; } } public class ContadorInverso implements Contador { int valor; ContadorInverso(){valor=MAX_INT;} public void avanzar(){ valor--; if (valor<0) valor = MAX_INT; } public int obtenerValor(){ return valor; } } Otro Ejemplo de Interface.

Interfaces Programación I Una clase puede implementar más de una interface. interface1 interface2superClase Clase public class Clase extends superClase implements interface1, interface2 {…}

Interfaces Programación I public interface ColoresBase { int ROJO = 1, VERDE = 2, AZUL = 4; void ajustarColoresBase( ); } public interface ColoresArcoIris extends ColoresBase { int AMARILLO = 3, NARANJA = 5, INDIGO = 6, VIOLETA = 7; void ajustarColoresArcoIris( ); } public interface MasColores extends ColoresArcoIris, ColoresBase { int FUCSIA = 17, COBRE = 43, ESMERALDA = 90; void ajustarMasColores( ); } Herencia de Interfaces Una interface puede heredar de otra interface. Observe que las interfaces ColoresArcoIris y MasColores no deben implementar los métodos de las superInterfaces.

Interfaces Programación I public class Figura implements MasColores { void ajustarColoresBase( ){ //código } void ajustarColoresArcoIris( ){ //código } void ajustarMasColores( ){ //código } Herencia de Interfaces Cuando una clase implemente alguna interface, ésta debe darle vida (código) a los métodos de la interface que implementa y a los de sus interfaces madre.

Interfaces Programación I public interface ColoresBase { int ROJO = 1, VERDE = 2, AZUL = 4; public void ajustar( ); } public interface ColoresImpresora extends ColoresBase { int AMARILLO = 3, ROJO=5, NEGRO=0; public void ajustar( ); } public class Impresora implements ColoresImpresora { } Atributos ó Métodos Ambiguos

Interfaces Programación I public class Impresora implements ColoresImpresora { public Impresora(){ } void ajustar( ){ //código } public static void main(String [] args){ System.out.println( “ColoresBase.ROJO=” +ColoresBase.ROJO); System.out.println( “ColoresImpresora.ROJO=” +ColoresImpresora.ROJO); Impresora hp = new Impresora(); hp.ajustar(); } Atributos ó Métodos Ambiguos

Interfaces Programación I Modificación de Interfaces Una interface una vez implementada no debería ser modificada. Lo que implica, que el diseño de una interface debe ser cuidadoso. Observe el siguiente ejemplo: public interface ColoresBase { int ROJO = 1, VERDE = 2, AZUL = 4; void ajustar(); } public class Figura implements ColoresBase { void ajustar(){ //código } public class Televisor implements ColoresBase { void ajustar(){ //código }

Interfaces Programación I Modificación de Interfaces Si ud. necesita agregar ó eliminar métodos de la interface ColoresBase, debe modificar todas las clases que implementen a esa interface. public interface ColoresBase { int ROJO = 1, VERDE = 2, AZUL = 4; void ajustar(); void mostrar(); } public class Figura implements ColoresBase { void ajustar(){ } void mostrar(){ } } public class Televisor implements ColoresBase { void ajustar(){ } void mostrar(){ } }

Interfaces Programación I Modificación de Interfaces Si la modificación de la interface, se trata de que necesita incluir nuevos métodos, el problema anterior se soluciona creando una interface con el o los nuevos métodos y se establece como hija de la interface original, esto hace que la nueva interface tenga los métodos anteriores mas los nuevos métodos. Las nuevas clases que necesiten del nuevo método de la interface, deberán implementar la interface hija y las clases anteriores no sufren modificación.

Interfaces Programación I Modificación de Interfaces public interface ColoresBase { int ROJO = 1, VERDE = 2, AZUL = 4; void ajustar( ); } public interface HijaColoresBase extends ColoresBase { void mostrar( ); } public class OtraFigura implements HijaColoresBase { void ajustar( ){ //código } void mostrar( ){ //código } }

:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Finalización