РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
18 of 1163 menu

Ключевое слово static

Ключевое слово static в Java означает, что поле, метод или вложенный класс принадлежит самому классу, а не какому-либо конкретному объекту. Это позволяет обращаться к статическим членам напрямую через имя класса, без создания экземпляра. Статические поля являются общими для всех объектов класса, а статические методы не могут обращаться к нестатическим полям и методам напрямую, так как не привязаны к конкретному объекту. В первом параметре, если речь идет о статическом методе, мы не передаем ссылку на объект (неявный this отсутствует), во втором параметре - обычные аргументы метода.

Синтаксис

// Статическое поле static тип имяПоля; // Статический метод static тип имяМетода(параметры) { // тело метода } // Статический вложенный класс static class ИмяКласса { // тело класса }

Пример

Давайте создадим класс со статическим полем и статическим методом, а затем обратимся к ним через имя класса:

public class Main { static int count = 0; static void increment() { count++; } public static void main(String[] args) { Main.increment(); Main.increment(); System.out.println(Main.count); } }

Результат выполнения кода:

2

Пример

Давайте убедимся, что статическое поле является общим для всех экземпляров класса:

public class Main { static int count = 0; public Main() { count++; } public static void main(String[] args) { Main obj1 = new Main(); Main obj2 = new Main(); Main obj3 = new Main(); System.out.println(Main.count); } }

Результат выполнения кода:

3

Пример

Давайте попробуем обратиться к нестатическому полю из статического метода и увидим ошибку компиляции:

public class Main { int nonStatic = 5; public static void main(String[] args) { // System.out.println(nonStatic); // ошибка компиляции System.out.println("Static method cannot access non-static field directly"); } }

Результат выполнения кода:

"Static method cannot access non-static field directly"

Смотрите также

  • ключевое слово final,
    которое запрещает изменение переменной
  • ключевое слово this,
    которое ссылается на текущий объект
  • ключевое слово new,
    которое создает экземпляр класса
  • ключевое слово import static,
    которое импортирует статические члены
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить