Junior — Middle
95
Java-да статикалық ішкі сынып пен статикалық емес ішкі сыныптың айырмашылығы қандай?
Сұралған компаниялар
СБЕР Бизнес
AI-дан жауап
sobes.tech AI
Статический вложенный класс (static nested class) в Java — это класс, объявленный внутри другого класса с модификатором static. Он не имеет доступа к нестатическим полям и методам внешнего класса напрямую, так как не связан с экземпляром внешнего класса.
Внутренний (не статический) класс — это класс, объявленный внутри другого класса без static. Он связан с экземпляром внешнего класса и может напрямую обращаться к его нестатическим полям и методам.
Пример:
class Outer {
private int x = 10;
static class StaticNested {
void print() {
// Нельзя обратиться к x напрямую
System.out.println("Static nested class");
}
}
class Inner {
void print() {
// Можно обратиться к x
System.out.println("Inner class, x = " + x);
}
}
}
Основные отличия:
- Статический вложенный класс не имеет ссылки на экземпляр внешнего класса.
- Внутренний класс всегда связан с экземпляром внешнего класса.
- Для создания внутреннего класса нужен объект внешнего класса, для статического вложенного — нет.