Inner classes CAPITULO 8.

Slides:



Advertisements
Presentaciones similares
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Advertisements

ANALIZADOR SEMANTICO DIANA CAROLINA CASTAÑO YANCI VIVIANA CASTRO PEDRO LUIS FLÓREZ SANTIAGO GUTIÉRREZ A.
Curso de java básico (scjp)
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.
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#.
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.
UML 1.4 Peter Emerson Pinchao Solis.
Arquitectura CLARO-TECNOTREE
REFERENCIA AL OBJETO DE LA CLASE BASE
La Programación Orientado a Objetos
Herencia y Polimorfismo
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Aplicación del paradigma orientado a objetos
Diseño y programación de
Programación Orientada a Objetos en Java
HERENCIA.
Sun Certified Java Developer (SCJP)‏ Sección 1 Declarations, Initialization and Scoping.
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.
Herencia y Polimorfismo en JAVA
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.
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.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
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.
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Programación Orientada a Objetos en Java
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.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Constructor  Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar.
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.
Programación Orientada 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.
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.
Programación orientada a objetos
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
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.
CONCEPTOS.
Programación orientada a objetos Capítulo 9 Algo mas sobre herencias.
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.
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 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.
Transcripción de la presentación:

Inner classes CAPITULO 8

Por favor no descomentar el codigo hasta segunda order. Gracias por su compresion.

Regular inner classes Inner classes que no son: Static Method-Local Anonymous Las inner clases pueden ver todos los metodos y atributos de la clase exterior inclusive aquellos marcados como private.

Regular Inner classes Las clases Inner no pueden tener ningun tipo de declaracion “Static” por lo tanto no pueden ejecutar el metodo main.

Instanciando una InnerClass Regla general: Para acceder a una inner clase, la unica manera de hacerlo es instanciando la outer class. Sin embargo, si se puede instanciar de manera normal una inner class desde la clase externa. Ver InstanciandoInner.java

Referenciando la clase Outer o Inner desde la InnerClass Como se referencia a un objeto? Con la palabra This. Lo mismo es con las inner class. Para la outer class se referencia de esta manera ClassName.this Ver: InnerClassReference.java

Modificadores de acceso aplicados a inner class Pueden ser los siguientes: Final Abstract Public Private Protected Strictfp Static (pero static hace que la clase ya no sea inner class)

Inner Class desde metodos locales Tambien se puede definir una inner class desde un metodo. Pero una inner class declarada de esta forma, solo puede ser instanciada dentro del metodo donde se creo la inner class Ver MethodLocalInnerClass.java

Inner Class desde metodos locales De igual manera las inner class creadas en un metodo pueden ver y acceder a los atributos y metodos de la outer; sin embargo no pueden compartir nada con las variables declaradas en el metodo donde estan contenidas. Porque? Ahí los quiero ver…

Inner Class desde metodos locales Los modificadores de acceso de una inner class son los mismos modificadores que tiene una variable de metodo, es decir solo puede ser final o abstract. Exam Watch! Las inner class declaradas dentro de metodos estaticos solo pueden acceder a miembros estaticos de la clase outer, y nada mas..

Inner Class Anonimas Viene en tres tipo diferentes: Plain-Old Anonymous Inner Classes, Flavor One Plain-Old Anonymous Inner Classes, Flavor Two Argument-Defined Anonymous Inner Classes

Inner Class Anonimas(Flavor One) Ver archivo FlavorOne.java

Inner Class Anonimas(Flavor One) Lo que se hace en realidad es definir un subtipo de la clase PopCorn pero que no tiene nombre. Es decir, es casi como crear una clase y hacerla extender de PopCorn. La idea de este tipo de inner class es de redefinir uno o varios metodos de la superclase.

Inner Class Anonimas(Flavor One) Exam Watch ! The closing semicolon is hard to spot. Watch for code like this: Popcorn p = new Popcorn() { public void pop() { } } // aqui falta el ; Foo f = new Foo();

Inner Class Anonimas(Flavor One) Anonymous Inner Classes tiene que todo con polimorfismo ya que lo que se hace es crear un subtipo que no tiene nombre. Ver: FlavorOnePolimorphism.java

Anonymous Inner Classes, Flavor Two La diferencia entre el FlavorOne y el FlavorTwo es que el primero define una subclase anonima para el supertipo mientras que el segundo define un implementador anonimo para la interface dada.

Anonymous Inner Classes, Flavor Two Exam Watch! Lo siguiente es ilegal Runnable r = new Runnable (); // can't instantiate interface Pero lo siguiente no: Pilas con esto Runnable r = new Runnable() { public void run() { } };

Argument-Defined Anonymous Inner Classes Significa crear inner class anónimas como parámetros de una función. Por ejemplo cuando tenemos como argumento de una función a una interface. Ver: ArgumentDefinedInnerClasses.java

Static Nested Classes No son en si inner class en si mismo, lo único que quieren decir es que, como cualquier miembro estático de una clase; este puede ser accesado sin necesidad de tener una instancia de la clase outer. Ver: StaticNestedClasses.java

Static Nested Classes Watch Exam! Así como los métodos estáticos, las static nested classes tampoco tienen acceso a los miembros no estáticos de la outer class, es decir variables de instancia ni métodos.