Está en la página 1de 6

CLASES INTERNAS

QUE SON CLASES INTERNAS?


Clases que son definidas dentro de clases Establece una estrecha relacin entre dos clases Hay cuatro tipos: Esttica public class Outer { Miembro class Inner { Local } Anonima }
Enclosing class

DEFINIENDO CLASES INTERNAS ESTTICAS


Definida en el nivel de clase Pueden accesar a solo a miembros estticos de la clase externa
public class Outer {
private static float varFloat = 3.50f; private String varString; static class InnerStatic { } }

Son compiladas en un archivo .class separado.

DEFINIENDO CLASES INTERNAS MIEMBRO


Definidas a nivel de clase Es necesaria una Instancia de la clase externa La palabra clave this es usada para accesar la instancia de la clase externa
public class Outer { private static float varFloat = 3.50f; private String varString; ... class InnerMember { ... Outer.this ... } ... }

Son compiladas en un archivo .class separado.

DEFINIENDO CLASES INTERNAS LOCALES


Son definidas en el nivel de mtodo Son declaradas dentro de un bloque de cdigo de un mtodo. La ubicacin del cdigo puede ser cualquier lugar dentro del mtodo. Tienen acceso solo a variables tipo final
public class Outer { ... public void outerMethod(final int var1){ final int var2=5; ... class InnerLocal { private int localVar = var1 + var2; ... } } }

No pueden ser public, protected, private, o static No pueden tener miembros estticos No pueden tener un constructor

Definiendo Clases Internas Annimas


Definidas a nivel de mtodo Declaradas dentro de un bloque de cdigo Carecen de las palabras claves class, extends, and implements. No pueden tener un constructor
public class Outer { ... public void outerMethod(){ SomeClass sc = new SomeClass(); ... myObject.myAnonymous(new SomeClass(){ ... } ) } }

Usadas para implementar adaptadores de interfaces de usuario para llevar a cabo el manejo de eventos cuando usamos eventos AWT o Swing

También podría gustarte