static
Делает поле или метод общим для всего класса, а не для отдельного объекта.
Доступно с: Java 1.0
Синтаксис
static Type name; static Type method() { … }Примеры
Статический счётчик общий для всех объектов:
class User {
static int count = 0;
String name;
User(String name) {
this.name = name;
count++;
}
}
void main() {
new User("Anna");
new User("Oleg");
IO.println(User.count);
}Результат:
2Статический метод вызывается через имя класса, без объекта:
class MathUtils {
static int square(int x) {
return x * x;
}
}
void main() {
IO.println(MathUtils.square(7));
IO.println(Math.max(3, 8));
}Результат:
49
8Примечания
Статический метод не видит поля объекта и this — у него нет «текущего объекта». Ошибка «non-static variable cannot be referenced from a static context» значит, что из статического метода обратились к полю или методу объекта.
Методы вроде Math.max(), Integer.parseInt(), List.of() статические — поэтому их вызывают через имя класса.
См. также
Вопросы и ответы по теме
В учебнике
- Статические поля и методы — Ключевое слово static в Java: общие поля класса, статические методы, константы static final и вызов через имя класса.