Главная » Java » Поля Java

0

Переменные, принадлежащие классу, называют полями (fields); примером поля может служить переменная name класса Body, рассмотренного выше. Объявление [юля состоит из наименования типа, за которым следуют идентификатор переменной необязательная конструкция инициализации, позволяющая присвоить переменной некоторое исходное значение. Каждый объект класса Body обладает собственными копиями трех полей: типа long для хранения уникального номера, позволяющего различить объект среди ему подобных, типа String, содержащего строку имени объекта, и типа Body, ссылающегося на другой объект того же типа, который представляет небесное светило, "центральное" по отношению к текущему. Объект (экземпляр) класса обладает "личными" копиями полей, Т.е. собственным – в общем случае, уникальным – состоянием. Поля объекта принято называть переменными экземпляра. Например, изменение содержимого поля orbits, принадлежащего одному из объектов Body, никоим образом не воздействует на одноименные поля других объектов того же типа.

В конструкции объявления поля разрешено использовать дополнительные

модификаторы, задающие определенные свойства поля.

·      Модификаторы доступа - рассмотрены в разделе 2.3 на странице 63.

·      static - обсуждается ниже.

·      final - обсуждается ниже.

·      transient - относится к проблеме сериализации (представления объекта в виде последовательности байтов данных – serialization) и рассматривается в разделе 15.7 на странице 418.

·      volatile - связан с вопросами синхронизации потоков вычислений и управления памятью; обсуждается в разделе 10.10 на странице 276.

В объявлении поля одновременно не могут быть использованы модификаторы final и volatile.

При употреблении в объявлении поля нескольких модификаторов мы рекомендуем указывать их в том порядке, который определен в списке.

Инициализация полей

Поле может быть инициализировано в конструкции объявления с помощью оператора присваивания и значения соответствующего типа. В примере класса Body поле nextID инициализируется нулем. В качестве выражения инициализации допускается при менять не только константы, но и имена других полей, конструкции вызова методов или более сложные предложения, состоящие из всех названных элементов вместе. Единственное требование состоит в том, что тип выражения инициализации должен совпадать с типом поля; кроме того, если в выражении используется вызов метода, тот не должен генерировать объявленные исключения, поскольку в данном случае их "некому" будет отловить (catch) и обработать. Ниже приведены примеры допустимых выражений инициализации.

Хотя синтаксис выражений-инициализаторов чрезвычайно гибок, они пригодны только для простых схем инициализации. Для использования более сложных схем необходимы дополнительные средства, с которыми вы скоро познакомитесь.

Если поле явно не инициализировано, ему присваивается значение соответствующего типа, принятое по умолчанию:

 

           Тип                                                                                        Значение по умолчанию

 

            boolean                                                                                  false

 

            char                                                                                        ‘\u0000’

 

            byte, short, int, long                                                                0

 

            float                                                                                       +0.0f

 

            double                                                                                    +0.0

 

            ссылка на объект                                                                   null

  _____________________________________________________________________________________

           

 

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

По теме:

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