Junior — Middle
105
Фарқи байни синфи дохилии статикӣ ва синфи дохилии ғайристатикӣ дар 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);
}
}
}
Основные отличия:
- Статический вложенный класс не имеет ссылки на экземпляр внешнего класса.
- Внутренний класс всегда связан с экземпляром внешнего класса.
- Для создания внутреннего класса нужен объект внешнего класса, для статического вложенного — нет.