В Java не существует статических классов на верхнем уровне. static применим к вложенным (nested) классам.
Что такое статический класс?
В Java не существует статических классов на верхнем уровне. static применим к вложенным (nested) классам.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Java не существует статических классов на верхнем уровне. static применим к вложенным (nested) классам.
Static Nested Class (Статический_вложенный_класс):
- Объявляется с модификатором
staticвнутри другого класса (outer class). - Не имеет доступа к нестатическим полям и методам внешнего класса напрямую, только через экземпляр внешнего класса (если понадобится).
- Может иметь доступ к статическим полям и методам внешнего класса напрямую.
- Создается без создания экземпляра внешнего класса.
- Используется для группировки связанных классов или для удобства доступа к утилитарным классам.
Пример создания:
class Outer {
static class StaticNested {
// поля и методы статического вложенного класса
}
}
Пример:
// Создание экземпляра статического вложенного класса
Outer.StaticNested nestedObject = new Outer.StaticNested();
Таким образом, "статический класс" в контексте Java обычно подразумевает статический вложенный класс.