Junior — Middle
Aký je rozdiel medzi vnútornou triedou a vloženou triedou v programovaní?
sobes.tech AI
Odpoveď od AI
U Javi (a u Androidu) ugneždena klasa је свака класа која је декларативно унутар друге класе. Угнеждене класе постоје у два типа:
- Статичка угнеждена класа (static nested class) — декларативна са модификатором
static. Нема директан приступ нестатичким члановима спољашње класе. - Унутрашња класа (inner class) — унутрашња класа без
static. Везана је за примерак спољашње класе и има приступ њеним нестатичким пољима и методама.
Пример:
class Outer {
private int outerField = 10;
static class StaticNested {
void print() {
// Не може се директно приступити outerField
System.out.println("Статичка унутрашња класа");
}
}
class Inner {
void print() {
// Може приступити outerField
System.out.println("Унутрашња класа, outerField = " + outerField);
}
}
}
Главна разлика је што је унутрашња класа повезана са објектом спољашње класе и може приступити њеним нестатичким члановима, док статичка унутрашња класа то не може.