static в Java используется для объявления элементов, принадлежащих классу, а не конкретному экземпляру объекта.
Ключевое слово может быть применено к:
- Переменным (полям):
- Одна копия переменной существует для всего класса, независимо от количества созданных экземпляров.
- Доступ к ней можно получить через имя класса (например,
ClassName.staticVariable).
java
- Методам:
- Метод принадлежит классу, а не конкретному объекту.
- Может быть вызван через имя класса (например,
ClassName.staticMethod()).
- Не имеет доступа к нестатическим членам класса (переменным или методам), так как они связаны с экземпляром.
java
- Блокам инициализации:
- Выполняется один раз при загрузке класса в JVM.
- Используется для инициализации статических полей или выполнения других действий, связанных с классом.
java
- Вложенным классам (inner/nested classes):
- Статический вложенный класс ведет себя как обычный класс верхнего уровня, за исключением того, что он находится внутри другого класса.
- Не требует создания экземпляра внешнего класса для доступа к нему.
- Имеет доступ только к статическим членам внешнего класса.
java
Использование static помогает в создании утилитных классов, хранении общих данных и управлении состоянием на уровне класса.