Junior — Middle
Koja je razlika između unutrašnje klase i ugnježdene klase u programiranju?
sobes.tech АИ
Одговор од АИ
U Javi (i u Androidu) ugneždena klasa je svaka klasa koja je deklarisana unutar druge klase. Ugnježdene klase postoje u dva tipa:
- Statička ugnježdena klasa (static nested class) — deklarisana sa modifikatorom
static. Nemaju direktan pristup nestatickim članovima spoljašnje klase. - Unutrašnja klasa (inner class) — ugnježdena klasa bez modifikatora
static. Povezana je sa instancom spoljašnje klase i ima pristup njenim nestatickim poljima i metodama.
Primer:
class Outer {
private int outerField = 10;
static class StaticNested {
void print() {
// Nije moguće direktno pristupiti outerField
System.out.println("Statička ugnježdena klasa");
}
}
class Inner {
void print() {
// Može pristupiti outerField
System.out.println("Unutrašnja klasa, outerField = " + outerField);
}
}
}
Glavna razlika je što je unutrašnja klasa povezana sa objektom spoljašnje klase i može pristupiti njenim nestatickim članovima, dok statička ugnježdena klasa to ne može.