Junior — Middle
Kuo skiriasi vidinė klasė nuo įterptosios klasės programavime?
sobes.tech AI
Atsakymas iš AI
Java (ir Android) įdėtas klasė yra bet kuri klasė, deklaruota kitoje klasėje. Įdėtos klasės būna dviejų tipų:
- Statinė įdėta klasė (static nested class) — deklaruota su
staticmodifikatoriumi. Ji neturi tiesioginės prieigos prie išorinės klasės nestatinių narių. - Vidinė klasė (inner class) — įdėta klasė be
staticmodifikatoriaus. Ji yra susieta su išorinės klasės egzemplioriumi ir turi prieigą prie jos nestatinių laukų ir metodų.
Pavyzdys:
class Outer {
private int outerField = 10;
static class StaticNested {
void print() {
// Negalima tiesiogiai pasiekti outerField
System.out.println("Statinė įdėta klasė");
}
}
class Inner {
void print() {
// Gali pasiekti outerField
System.out.println("Vidinė klasė, outerField = " + outerField);
}
}
}
Pagrindinis skirtumas tas, kad vidinė klasė yra susieta su išorinės klasės objektu ir gali pasiekti jos nestatinius narius, o statinė įdėta klasė — ne.