Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Inner classes CAPITULO 8
2
Por favor no descomentar el codigo hasta segunda order.
Gracias por su compresion.
3
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.
4
Regular Inner classes Las clases Inner no pueden tener ningun tipo de declaracion “Static” por lo tanto no pueden ejecutar el metodo main.
5
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
6
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
7
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)
8
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
9
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…
10
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..
11
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
12
Inner Class Anonimas(Flavor One)
Ver archivo FlavorOne.java
13
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.
14
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();
15
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
16
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.
17
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() { } };
18
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
19
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
20
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.
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.