ВНИМАНИЕ! Опубликовано расписание занятий на 2017-2018 уч. год Подробнее
Toggle Bar

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

Экземпляры объектов одного класса имеют совершенно независимые друг от друга поля, и поэтому  содержат  разные значения.

Иногда надо определить поле, общее для всего класса, изменение которого в одном экземпляре повлечет изменение того же поля во всех экземплярах. Такие поля называются переменными класса  и обозначается модификатором static. Для такого поля выделяется только одна ячейка памяти, общая для всех экземпляров.

Если поле данных класса описано с ключевым словом static,  то значение этого поля будут одинаковыми для всей объектов класса.

Вот пример.

В классе объявляется статическая переменная public static int k - счетчик количества точек, которая является общей для всех объектов – точек на плоскости. Доступ к статической переменной возможен из класса без создания объекта, а также из любого объекта класса.

//класс точек
public class StaticPoint {
    private int x;     //координата x
    private int y;      //координата y
    public static int k;  //общая переменная – счетчик количества точек
   
     //конструктор
      public StaticPoint(int X, int Y)  
      {   x=X;
          y=Y;
          k++;   //создана еще одна точка, увеличиваем счетчик
          System.out.println("Создано точек  k= "+k);
      }
}
public class DemoStatic {
    public static void main(String[] args) {
       System.out.print("Получаем доступ к полю класса без создания объекта, k=");
       System.out.println( StaticPoint.k);
       System.out.println("Создаем объекты:");
       StaticPoint  p1 = new StaticPoint(1,1);
       StaticPoint  p2 = new StaticPoint(1,1);
       StaticPoint  p3 = new StaticPoint(1,1);
       StaticPoint  p4 = new StaticPoint(1,1);
      
       System.out.print("Получаем доступ к полю класса без создания объекта, k=");
       System.out.println( StaticPoint.k);
    }
}

Будет выведено:

Получаем доступ к полю класса без создания объекта, k=0
Создаем объекты:
Создано точек  k= 1
Создано точек  k= 2
Создано точек  k= 3
Создано точек  k= 4
Получаем доступ к полю класса без создания объекта, k=4

 

Для работы со статическими полями создаются статические методы.

Статические методы работают только со статическими полями и методами. При обращении статического метода к обычному полю возникает ошибка.

Особенности:

  • в статических методах нельзя использовать ссылки this, super.
  • статические  методы не могут быть абстактными.
Добавить комментарий
  • Комментарии не найдены
 
Our website is protected by DMC Firewall!