Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Unidad 4. interfaces
1. C.F.P.E. JUAN XXIII – ALCORCÓN
Departamento de Desarrollo de Aplicaciones Informáticas
INTERFACES
1. Concepto de interfaz
• Definición de interfaces
• Implementación de interfaces
• Herencia de interfaces
• Polimorfismo. Interfaces como tipos de datos.
1. Criterios de diseño
• Clases abstractas Vs Interfaces
1. Interfaces de uso común
• Comparable
• ActionListener
• Iterator
1
2. C.F.P.E. JUAN XXIII – ALCORCÓN
Departamento de Desarrollo de Aplicaciones Informáticas
INTERFACES. Concepto
• Interfaz: Conjunto de métodos relacionados que los objetos de una clase exponen a los
clientes.
• Un interface permite:
• Definir un comportamiento (conjunto de métodos) común de un conjunto de
clases no relacionadas por herencia.
• Utilizar “polimorfismo”, percibiendo de modo común un conjunto de objetos que
tienen definidos métodos comunes (interface)
• Simular “herencia múltiple” en lo que refiere a la especificación de los métodos
que deben definir los objetos de las clases que implementan el interface.
• Especificar las “capacidades” de los objetos de aquellas clases que implementan
el interface.
• Los nombres de interfaces suelen representar:
• Capacidades . Ejemplos “Comparable”, “Clonable”, …
• Roles o perfiles de acción : Ejemplo interface “Iterator”, “MouseListener”
2
3. C.F.P.E. JUAN XXIII – ALCORCÓN
Departamento de Desarrollo de Aplicaciones Informáticas
INTERFACES. Ejemplo
• Ejemplo de definición de interface
• Ejemplo de implementación de Interface
3
4. C.F.P.E. JUAN XXIII – ALCORCÓN
Departamento de Desarrollo de Aplicaciones Informáticas
INTERFACES. Definición
• La sintaxis del interfaz es:
[public] interface nombreInterface [extends Interface1, Interface2…]
{
//constantes
//métodos abstractos
}
• La definición del interfaz incluye.
• Métodos: implícitamente public y abstract
• Constantes: implícitamente public, final y static.
• El interfaz tiene visibilidad
• public: accesible o utilizable desde cualquier clase.
• [default]: accesible o utilizable desde las clases del mismo paquete.
4
5. C.F.P.E. JUAN XXIII – ALCORCÓN
Departamento de Desarrollo de Aplicaciones Informáticas
INTERFACES. Implementación
• Implementación de interfaz: Si una clase implementa un interface se compromete a:
• Definir todos los métodos abstractos
• Heredar todas las constantes.
• La implementación de un interface también puede entenderse como un:
• Contrato: Entendido como un compromiso de servicio que adquieren los objetos
de una clase que implementan un interface, respecto a sus clientes.
• Protocolo: Entendido como un conjunto de normas (mensajes-metodos) que
definen la comunicación (envío de mensajes) entre los objetos del sistema.
• Sintaxis de implementación :
[visiblidad] class nombreClase [extends claseBase] implements Interface1, Interfaz2
{
// definición obligatoria de métodos abstractos
}
• Un clase puede implementar varios Interfaces.
5
6. C.F.P.E. JUAN XXIII – ALCORCÓN
Departamento de Desarrollo de Aplicaciones Informáticas
INTERFACES. Herencia de interfaces
• Un interfaz puede heredar de otro/s .
• Ejemplo
public interface MouseInputListener extends MouseListener, MouseMotionListener {
…
}
• La herencia entre interfaces admite herencia múltiple .
• Si un interfaz o clase declara un método, ya declarado en un interfaz “base” del cual
hereda o implementa, el comportamiento es similar al de herencia entre clases:
• a) si coincide la firma de los métodos “oculta” o “sombrea” al método del interfaz
base.
• b) si coincide el nombre de lo métodos pero no la firma sobrecarga de métodos.
• c) si coincide la firma pero no el valor de retorno error.
6
7. C.F.P.E. JUAN XXIII – ALCORCÓN
Departamento de Desarrollo de Aplicaciones Informáticas
INTERFACES. Polimorfismo
• Una vez declarado el Interface se convierte en “Tipo de datos” y es posible declarar (pero
no instanciar) referencias al Interface
• Si varias clases implementan el mismo interface es posible utilizar “referencias a
interface” para utilizar polimorfismo.
• los objetos que implementen el mismo interfaz pueden ser “percibidos” de modo común.
• Ejemplo: Interface “Arrancable”
7
8. C.F.P.E. JUAN XXIII – ALCORCÓN
Departamento de Desarrollo de Aplicaciones Informáticas
INTERFACES. Clases Abstractas Vs Interfaces
• A nivel de diseño: la diferencia entre Clase Abstracta e Interface es:
• Clase Abstracta: Representa una relación “es-un”
• Interface: Representa una relación “tiene la capacidad de … “ , “es capaz de …” o “puede dar
servicio de …”, “puede actuar como …”
• Ejemplos:
• Clase A implements Comparable : Los objetos de la clase Clase A “tienen la capacidad”
de compararse.
• Clase Listener implements ActionListener: Los objetos de la clase Listenener son
capaces de escuchar y reaccionar a “Eventos de Accion” sobre el interface gráfico.
• A nivel de programación: Un clase que implementa una interface:
• solo hereda las constantes.
• no hereda definiciones (código) de los métodos.
• tiene una jerarquía interfaces distinta a la jerarquía de herencia.
8
9. C.F.P.E. JUAN XXIII – ALCORCÓN
Departamento de Desarrollo de Aplicaciones Informáticas
INTERFACES. Interfaces de uso común
• Comparable: Se utiliza para ordenar objetos.
• compareTo (Object o): función que etermina de dos objetos cuál es “mayor”, “menor” o si son
iguales.
• ActionListener: Se utiliza para responder a eventos de acción sobre el interface.
• ActionPerformed(ActionEvent e): contiene el código que se ejecuta al realizar un acción como
click de raton.
• Iterator: Contiene los métodos invocados por el bucle for mejorado ( notación : )
9
10. C.F.P.E. JUAN XXIII – ALCORCÓN
Departamento de Desarrollo de Aplicaciones Informáticas
INTERFACES. Interfaces de uso común
• Comparable: Se utiliza para ordenar objetos.
• compareTo (Object o): función que etermina de dos objetos cuál es “mayor”, “menor” o si son
iguales.
• ActionListener: Se utiliza para responder a eventos de acción sobre el interface.
• ActionPerformed(ActionEvent e): contiene el código que se ejecuta al realizar un acción como
click de raton.
• Iterator: Contiene los métodos invocados por el bucle for mejorado ( notación : )
9