jueves, 5 de diciembre de 2013

Clases internas locales - II

Restricciones en el uso de las clases internas locales: 
  1. No pueden tener el mismo nombre que ninguna de sus clases contenedoras. 
  2. No pueden definir variables, métodos y clases static. 
  3. No pueden ser declaradas public, protected. prívate o package. pues su visibilidad es siempre la de las variables locales, es decir, la del bloque en que han sido definidas.
Las clases internas locales se utilizan para definir clases Adapter en el AWT. A continuación se presenta un ejemplo de definición de clases internas locales:

// fichero ClasesIntLocales.java
// Este fichero demuestra cómo se crean clases locales
class A {
int i=-l; // variable miembro
// constructor
public A(int i) {this.i=i;}
// definición de un método de la clase A
public void getAi(final long k) { // argumento final
final double f=3.14;          // variable local final
// definición de una clase interna local
class BL {
int j=2;
public BL(int j) {this.j=j;} // constructor
public void printBLO {
System.out.println(" j="+j+" i="+i+" f="+f+" k="+k);
}
} // fin clase BL
// se crea un objeto de BL
BL bl = new BL(2*i);
// se imprimen los datos de ese objeto
bl.printBLO ;
} // fin getAi

} // fin clase contenedora A

class ClasesIntLocales {
public static void main(String [] arg) {
// se crea dos objetos de la clase contenedora
A al = new A(-10);
A a2 = new A(-ll);
// se llama al método getAi()
al.getAi(1000); // se crea y accede a un objeto de la clase local
a2.getAi(2000);
} // fin de main()
public static void println(String str) {System.out.println(str);}
} // fin clase ClasesIntLocales

No hay comentarios:

Publicar un comentario