Middle
Ce sunt clasele imbricate și cum sunt aplicate în programare?
sobes.tech AI
Răspuns de la AI
Clasele imbricate sunt clase declarate în interiorul altei clase. Ele permit gruparea logică a claselor utilizate doar într-un singur loc, cresc încapsularea și fac codul mai ușor de citit.
Clasele imbricate sunt:
- Statice (Clase Imbricate Statice): Nu au acces la membrii non-statice ai clasei exterioare. Pot fi create fără o instanță a clasei exterioare.
- Nestatice (Clase Interne): au acces la toți membrii clasei exterioare (inclusiv cei privați). Pentru a crea o instanță a unei clase interne nestatice, este necesară o instanță a clasei exterioare.
Aplicații:
- Ascunderea implementării: Clasa imbricată poate fi folosită ca o clasă auxiliară, ale cărei detalii de implementare nu trebuie să fie accesibile din exterior.
- Grupare: Combinarea logică a claselor strâns legate.
- Implementarea callback-urilor / ascultătorilor: Este adesea folosită pentru a crea clase interne anonime pentru implementarea interfețelor sau claselor abstracte.
- Iteratoare: Clasa internă este convenabilă pentru implementarea unui iterator, deoarece are acces la starea internă a colecției.
Exemplu (Java):
class OuterClass {
private int outerField;
// Clasă internă statică
static class StaticNestedClass {
void print() {
// Nu are acces la outerField
System.out.println("Din StaticNestedClass");
}
}
// Clasă internă nestică
class InnerClass {
void print() {
// Are acces la outerField
System.out.println("outerField: " + outerField);
}
}
}
// Crearea unei instanțe a clasei interne statice
OuterClass.StaticNestedClass staticNested = new OuterClass.StaticNestedClass();
staticNested.print();
// Crearea unei instanțe a clasei interne
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.print();