1 Interfaces y Clases Internas ELO-329: Diseño y programación orientados a objetos Agustín J. González.

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: Conceptos sobre poo Profesor:
Herencia en C#.
Fundamentos de la programación orientada a objetos
Lenguaje de programación Java
Tomado de:
UML 1.4 Peter Emerson Pinchao Solis.
Arquitectura CLARO-TECNOTREE
Genéricos en Java Jaime Ramírez, Ángel Lucas González
Aplicación del paradigma orientado a objetos
Diseño y programación de
PROGRAMACION ORIENTADA
Encapsulamiento y Abstracción
Programación Orientada a Objetos en Java
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Abstracción de los datos y Orientación a Objeto Clase 13.
Creación de una librería propia. Conceptos Básicos Interfaz –El concepto formal se refiere al límite entre dos entidades distintas. –Al hablar de librerías,
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.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
1 Interfaces Agustín J. González ELO Introducción En C++ se permite la herencia múltiple; es decir, es posible derivar una clase de dos o más clases.
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.
1 Persistencia en Java Agustín J. González ELO-329.
Programación orientada a objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION A OBJETOS.
Manejo de Punteros y objetos en memoria dinámica en C++
PATRON PROTOTYPE Cristina Merino Héctor Carbajo Alicia Arroyo.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Diagrama de Clases ACI 570.
Interfaces y Clases Internas ELO329: Diseño y Programación Orientados a Objetos.
Interfaces ELO329: Diseño y Programación Orientados a Objetos.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
1 Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO329/ELO330.
1 Interfaces y Clases Internas ELO-329: Diseño y programación orientados a objetos Agustín J. González.
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.
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Detalles Generales sobre Java
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SEIS DESARROLLO, INNER CLASSES.
Algoritmos y Programación III
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
Clasificación de Diagramas
Polimorfismo y Métodos Virtuales Agustín J. González ELO329.
Interfaces y Clases Internas
Herencia y Clases Abstractas
1 Interfaces Agustín J. González ELO Introducción En C++ se permite la herencia múltiple; es decir, es posible derivar una clase de dos o más clases.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Patrones de Diseño Agustín J. González ElO329.
Herencias Conceptos básicos i
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
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.
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.
Interfaces y Clases Internas ELO329: Diseño y Programación Orientados a Objetos.
ELO329: Diseño y Programación Orientados a Objetos
ELO329: Diseño y Programación Orientados a Objetos
ELO329: Diseño y Programación Orientados a Objetos
ELO329: Diseño y Programación Orientados a Objetos
ELO329: Diseño y Programación Orientados a Objetos
Transcripción de la presentación:

1 Interfaces y Clases Internas ELO-329: Diseño y programación orientados a objetos Agustín J. González

2 ¿Qué queremos decir con interfaces y clases internas? NOTA: El término interfaz aquí NO se refiere a las interfaces gráficas. Aquí las interfaces son una manera de describir qué debería hacer una clase sin especificar el cómo. Entre caras -> Interfaz, plural interfaces Las clases internas son clases anidadas dentro de otras clases. Interfaces y clases internas son recursos esenciales en el manejo de interfaces gráficas en Java.

3 Interfaces Una interfaz es la descripción de algún servicio que posteriormente alguna clase puede implementar (y por ende ofrecer). Por ejemplo, si un alumno sabe alemán, tenemos idea de lo que él es capaz. Además de ser persona (herencia) él cumple la interfaz “interprete de alemán”. También podríamos decir que él es un “interprete de alemán” (la misma relación que en herencia).

4 Interfaces (cont.)‏ En Java cada clase puede tener sólo una clase base (herencia no múltiple), por ello usamos Interfaces para abordar casos como el ejemplo previo. Se cumple también el principio de sustitución. Instancias de la clase que implementa una Interfaz pueden ser usadas donde se espera una instancia de la interfaz. Es similar a usar una instancias de una subclase cuando se espera un objeto de la clase base.

5 No se permite crear objetos instancias de un Interfaz. Por la misma razón que no se puede crear instancias de clases abstractas. New InterfazX(); Todos los métodos de una Interfaz son públicos. No es necesario indicarlo. Pueden incluir constantes. En este caso son, por omisión, public static y final. Aspectos Sintácticos: Interfaces (cont.)‏ Implementación de una interfaz: class Employee implements Comparable {.... public int compareTo(Object other) {....// implementación } Definición de una interfaz(un archivo): public interface Comparable { int compareTo (Object other); }

6 Ejemplo: uso de interfaces Consideremos la extensión de la clase Employee para que podamos ordenar arreglos de empleados según su salario. Ver EmployeeSortTest.java Ver documentación de clase Arrays e interfaz Comparable, explicar clases genéricas.

7 Clases Internas Son clases definidas dentro de otras (anidadas). Se usan para dar acceso a miembros de la clase anfitriona – incluso si son privados. Se usan como mecanismo de encapsulamiento. Son muy útiles para reducir código fuente. Especialmente cuando la clase sólo genera pocas instancias. Son comunes en el desarrollo de interfaces gráficas.

8 Clases Internas (Cont.)‏ Las clases internas existen sólo para el compilador, ya que éste las transforma en clases regulares separando la clase externa e interna con signo $. La máquina virtual no distingue la clases internas. Ver InnerClassTest.java También se pueden definir al interior de un método.

9 Clases internas: Ejemplo public void start(double rate)‏ { private class InterestAdder implements ActionListenerActionListener { public InterestAdder(double aRate)‏ {rate = aRate; } public void actionPerformed(ActionEvent event)‏actionPerformed { double interest = balance * rate / 100; // update interest balance += interest; NumberFormat formatter = NumberFormat.getCurrencyInstance(); System.out.println("balance=" + formatter.format(balance)); } private double rate; } ActionListener adder = new InterestAdder(rate); Timer t = new Timer(1000, adder); t.start(); }

10 Clases internas anónimas Cuando necesitamos sólo una instancia de la clase, no necesitamos darle un nombre. Decimos que tal clase es interna y anónima. Ver AnonymousInnerClassTest.java public void start(final double rate)‏ { ActionListener adder = new //sigue en otra línea.. ActionListener() /* esta es una interfaz que implementamos directamente */ { /* y da lugar a una clase interna anonima */ public void actionPerformed(ActionEvent event)‏ { double interest = balance * rate / 100; balance += interest; NumberFormat formatter = NumberFormat.getCurrencyInstance(); System.out.println("balance=" + formatter.format(balance)); } }; Timer t = new Timer(1000, adder); t.start(); }