Данные, содержащиеся в классе, могут быть переменными или константами и задаются в соответствии с правилами, рассмотренными в разделе «Переменные» (см. с. 38) и «Именованные константы» (см. с. 41). Переменные, описанные в классе, называются полями класса.
При описании элементов класса можно также указывать атрибуты и спецификаторы, задающие различные характеристики элементов. Синтаксис описания элемента данных приведен ниже:
[ атрибуты ] [ спецификаторы ] [ const ] тип имя [ = начальное_значение ]
До атрибутов мы доберемся еще не скоро, в главе 12, а возможные спецификаторы полей и констант перечислены в табл. 5.2. Для констант можно использовать только спецификаторы 1-6.
Таблица 5.2. Спецификаторы полей и констант класса
№ Спецификатор Описание
1 new Новое описание поля, скрывающее унаследованный элемент класса
2 publiс Доступ к элементу не ограничен
3 protected Доступ только из данного и производных классов
4 internal Доступ только из данной сборки
5 protected Доступ только из данного и производных классов и из данной
internal сборки
6 private Доступ только из данного класса
7 static Одно поле для всех экземпляров класса
8 readonly Поле доступно только для чтения
9 volatile Поле может изменяться другим процессом или системой
По умолчанию элементы класса считаются закрытыми (private). Для полей класса этот вид доступа является предпочтительным, поскольку поля определяют внутреннее строение класса, которое должно быть скрыто от пользователя. Все методы класса имеют непосредственный доступ к его закрытым полям.