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.
  • статические  методы не могут быть абстактными.

Добавить комментарий:

Комментарии  

Virgilexodo
Доброго времени суток .
Ваш форум мне показался очень привлекательным и перспективным. Хочу приобрести рекламное место для баннера в шапке, за $1500 в месяц. Оплачивать буду через WebMoney, 50% сразу, а 50% через 2 недели. И еще, адрес моего сайта kiva-hack.ru - он не будет противоречить тематике?

Спасибо! Напишите о Вашем решении мне в ПМ или на почту boris1977gorbunov@gmail.com
Garlandfriff
Hello! look at my pictures catcut.net/Czvw

Добавить комментарий

Защитный код
Обновить