Главная » Java » Статические поля java

0

Поля, принадлежащие конкретным объектам, - это именно то, что обычно необходимо. Как правило, поля одного объекта должны быть отличны от одноименных полей других объектов того же класса.

 

В некоторых ситуациях, однако, полезно иметь возможность объявления полей, общих для всех объектов класса. Подобные поля носят название переменных класса (class variables) и в отличие от переменных экземпляра принадлежат классу в целом.

 

Вполне правомерен вопрос, когда именно может возникнуть потребность в использовании переменных класса? Рассмотрим, например, фабрику компании Sony, выпускающую компактные кассетные проигрыватели. Каждый проигрыватель обладает уникальным серийным номером. Говоря в терминах объектно-ориентированного программирования, каждый экземпляр класса компактных кассетных проигрывателей содержит собственное поле для хранения серийного Номера. Но производитель обязан вести учет номеров, чтобы знать, какой порядковый номер следует присвоить очередному изделию. Текущее значение номера не имеет смысла хранить в каждом объекте – для этой цели достаточно предусмотреть единственную переменную уровня класса.

 

Чтобы получить поле, относящееся к классу в целом, выражение его объявления Следует снабдить модификатором statiс. Такие поля класса называют статическими  (static).

public static Point origin = new point();

 

Поместив это объявление в текст класса Роint, мы Сможем гарантировать Существование в точности одной порции данных под названием Роint.огigin, которая всегда ссылается на объект точки с координатами (0,0). Это статическое поле в нашем полном распоряжении, независимо от того, сколько объектов Роint мы создали (либо не создали вовсе). Значения Роint.огigin.x и Роint.огigin.у изначально равны нулю – числовое поле всегда по умолчанию инициализируется нулем, если явно не задана другая величина.

Теперь, вероятно, вы понимаете еще более точно, почему именованные Константы объявляются как статические.

Далее по ходу изложения, употребляя термин поле, мы, как правило, будем иметь в виду переменную экземпляра, хотя в некоторых случаях для ясности нами используется и выражение нестатическое поле.

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии