Inner Class - Tensho97/Aprende-a-Aprender GitHub Wiki
Una clase interna no es más que una clase dentro de otra clase. Es una caracteristica de Java que permite controlar la visibilidad y relacionarlas logicamente.
Se puede definir una clase interna de la siguiente manera:
class Externa {
. . .
class Interna {
. . .
}
}
La clase Externa puede instanciar y usar la clase Interna como cualquier otra? sin limitación ni cambio en la sintaxis de acceso:
class Externa {
. . .
class Interna {
. . .
}
void metodo() {
Interna i = new Interna(. . .);
. . .
}
}
Ejemplo:
class Almacen {
private Object [] listaObjetos;
private numElementos = 0;
Almacen (int maxElementos) {
listaObjetos = new Object[maxElementos];
}
public Object get(int i) {
return listaObject[i];
}
public void add(Object obj) {
listaObjetos[numElementos++] = obj;
}
public Iterador getIterador() {
new Iterador();
}
class Iterador {
int indice = 0;
Object siguiente() {
if (indice < numElementos) return listaObjetos[indice++];
else return null;
}
}
}
y la forma de usarse, sería:
Almacen alm = new Almacen(10); // se crea un nuevo almacen
. . .
alm.add(...); // se añaden objetos
. . .
// para recorrerlo
Almacen.Iterador i = alm.getIterador(); // obtengo un iterador para alm
Object o;
while ( (o = i.siguiente()) != null) {
. . .
}
Relacionado
Autores : Vanesa, Julián