Middle
Co jsou to vnořené třídy a jak se používají v programování?
sobes.tech AI
Odpověď od AI
Vnořené třídy jsou třídy deklarované uvnitř jiné třídy. Umožňují logické seskupení tříd používaných pouze na jednom místě, zvyšují zapouzdření a činí kód přehlednějším.
Vnořené třídy jsou:
- Statické (Statické vnořené třídy): Nemají přístup k nestatickým členům vnější třídy. Mohou být vytvářeny bez instance vnější třídy.
- Neststatické (Vnitřní třídy): mají přístup ke všem členům vnější třídy (včetně soukromých). Pro vytvoření instance nestatické vnitřní třídy je potřeba instance vnější třídy.
Použití:
- Skrytí implementace: Vnořená třída může být použita jako pomocná třída, jejíž detaily implementace by neměly být přístupné zvenčí.
- Skupinování: Logické spojení úzce souvisejících tříd.
- Implementace callbacků / posluchačů: Často se používá k vytváření anonymních vnitřních tříd pro implementaci rozhraní nebo abstraktních tříd.
- Iterátory: Vnitřní třída je vhodná pro implementaci iterátoru, protože má přístup k vnitřnímu stavu kolekce.
Příklad (Java):
class OuterClass {
private int outerField;
// Statická vnořená třída
static class StaticNestedClass {
void print() {
// Nemá přístup k outerField
System.out.println("Z StaticNestedClass");
}
}
// Vnitřní třída
class InnerClass {
void print() {
// Má přístup k outerField
System.out.println("outerField: " + outerField);
}
}
}
// Vytvoření instance statické vnořené třídy
OuterClass.StaticNestedClass staticNested = new OuterClass.StaticNestedClass();
staticNested.print();
// Vytvoření instance vnitřní třídy
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.print();