Назад к вопросам
Junior — Middle
65
Чем отличаются статический вложенный класс от внутреннего класса в Java?
Ответ от нейросети
sobes.tech AI
Статический вложенный класс в Java — это класс, объявленный внутри другого класса с модификатором static. Он не имеет доступа к нестатическим членам внешнего класса и не требует создания экземпляра внешнего класса для своего создания.
Внутренний (нестатический) класс связан с экземпляром внешнего класса и может обращаться к его нестатическим полям и методам. Для создания внутреннего класса нужен объект внешнего класса.
Пример:
class Outer {
int x = 10;
static class StaticNested {
void print() {
System.out.println("Статический вложенный класс");
// Нет доступа к x
}
}
class Inner {
void print() {
System.out.println("Внутренний класс, x = " + x);
}
}
}
// Использование:
Outer.StaticNested sn = new Outer.StaticNested();
sn.print();
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
inner.print();
Таким образом, статический вложенный класс более независим от внешнего, а внутренний класс тесно связан с объектом внешнего класса.