Junior
Čo sú to vnorené triedy?
sobes.tech AI
Odpoveď od AI
Vnorené triedy sú triedy, ktoré sú deklarované vnútri inej triedy. Delia sa na dva hlavné typy: statické vnorené triedy (statické členy triedy) a vnorené triedy (nestatické členy triedy).
Statické vnorené triedy:
- Sú spojené s vonkajšou triedou, nie s jej inštanciou.
- Môžu pristupovať iba k statickým členom vonkajšej triedy.
- Môžu byť vytvorené bez inštancie vonkajšej triedy.
Vnorené triedy:
- Sú spojené s inštanciou vonkajšej triedy.
- Môžu pristupovať ku všetkým členom vonkajšej triedy (vrátane private), čiže statickým aj nestatickým.
- Vyžadujú inštanciu vonkajšej triedy na ich vytvorenie.
Príklady použitia:
- Zoskupovanie: Logicky súvisiace triedy možno spojiť na zlepšenie čitateľnosti a organizácie kódu.
- Zapuzdrenie: Vnorené triedy majú prístup k súkromným členom vonkajšej triedy, čo umožňuje zapuzdriť detaily implementácie.
- Poslucháči udalostí (Java): Často sa používajú na vytváranie anonymných vnorených tried.
- Pomocné triedy: Malé triedy používané iba vonkajšou triedou.
// Príklad statickej vnorené triedy
class OuterClass {
static int outerStaticField = 1;
int outerInstanceField = 2;
static class StaticNestedClass {
void display() {
System.out.println("Vonkajšie statické pole: " + outerStaticField);
// Priamo sa nedá pristupovať k outerInstanceField
}
}
}
// Príklad vnorené triedy
class AnotherOuterClass {
int outerField = 10;
class InnerClass {
void display() {
System.out.println("Vonkajšie pole: " + outerField); // Prístup k poľu vonkajšej triedy
}
}
}
Porovnávacia tabuľka:
| Charakteristika | Statická vnorená trieda | Vnorená trieda |
|---|---|---|
| Vzťah | S vonkajšou triedou | S inštanciou vonkajšej triedy |
| Prístup k členom vonkajšej | Iba statické | Všetky členy (vrátane private) |
| Vyžaduje inštanciu | Nie | Áno |
| Môže obsahovať statické členy | Áno | Nie (okrem konštánt) |