Middle
¿Qué son las clases anidadas y cómo se aplican en programación?
sobes.tech AI
Respuesta de la IA
Las clases anidadas son clases declaradas dentro de otra clase. Permiten agrupar lógicamente clases que se usan solo en un lugar, aumentan la encapsulación y hacen que el código sea más legible.
Las clases anidadas son:
- Estáticas (Clases Anidadas Estáticas): No tienen acceso a los miembros no estáticos de la clase externa. Pueden crearse sin una instancia de la clase externa.
- No estáticas (Clases Internas): Tienen acceso a todos los miembros de la clase externa (incluidos los privados). Para crear una instancia de una clase interna no estática, se requiere una instancia de la clase externa.
Aplicaciones:
- Ocultación de la implementación: La clase anidada puede usarse como una clase auxiliar, cuyos detalles de implementación no deben ser accesibles desde fuera.
- Agrupamiento: Unión lógica de clases estrechamente relacionadas.
- Implementación de callbacks / oyentes: Frecuentemente se usa para crear clases internas anónimas para implementar interfaces o clases abstractas.
- Iteradores: La clase interna es conveniente para implementar un iterador, ya que tiene acceso al estado interno de la colección.
Ejemplo (Java):
class OuterClass {
private int outerField;
// Clase anidada estática
static class StaticNestedClass {
void print() {
// No tiene acceso a outerField
System.out.println("Desde StaticNestedClass");
}
}
// Clase anidada no estática (Clase Interna)
class InnerClass {
void print() {
// Tiene acceso a outerField
System.out.println("outerField: " + outerField);
}
}
}
// Creación de una instancia de la clase anidada estática
OuterClass.StaticNestedClass staticNested = new OuterClass.StaticNestedClass();
staticNested.print();
// Creación de una instancia de la clase interna
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.print();