Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Спецификатор Описание

Данные: поля и константы

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

При описании элементов класса можно так же указывать атрибуты и спецификаторы полей и констант, перечисленные в таблице 13.2, а для констант можно использовать только спецификаторы 1-6.

Таблица 13.2 - Спецификаторы полей и констант класса

1 new Новое описание поля, скрывающее указанный элемент

класса

2 public Доступ к элементу не ограничен

3 protected Доступ только из данного и производных классов

4 internal Доступ только из данной сборки

5 private Доступ только из данного класса

6 static Одно поле для всех экземпляров класса

7 readonly Поле доступно только для чтения

8 volatile Поле может изменяться другим процессом или системой

 

По умолчанию элементы класса считаются закрытыми (private). Для класса этот вид доступа является предпочтительным, поскольку поля определяют внутреннее строение класса, которое должно быть скрыто от пользователя. Все методы класса имеют непосредственный доступ к его закрытым полям.

 

Поля, описанные со спецификатором static, а также константы существуют в единственном экземпляре для всех объектов класса, поэтому к ним обращаются не через имя экземпляра, а через имя класса. Если класс содержит только статические элементы, экземпляр класса создавать не требуется.

 


Обращение к полю класса выполняется с помощью операции доступа (точка). Справа от точки задается имя поля, слева – имя экземпляра для обычных полей или имя класса для статических.

В примере приведен простой класс Demo и два способа обращения к его полям. Пример описания класса:

namespace ConsoleApplication1

{

class Demo

{

public int a = 1; //поля данных

public const double c = 1.66; //константа

public static string s = "Demo";//статическое поле класса

double y; //закрытое поле данных

}

class Class1

{

static void Main()

{

Demo x = new Demo(); //создание экземпляра

Console.WriteLine(x.a); //x.a - обращение к полю класса

//Console.WriteLine(x.c); //ОШИБКА! Константное данное!

Console.WriteLine(Demo.c); //Demo.c - обращение к константе

Console.WriteLine(Demo.s); //обращение к статическому полю

Console.ReadKey();

} }}

//Поле y вывести на экран аналогичным образом не удается: оно является //закрытым, то есть недоступно извне (из класса Class1). Поскольку //значение этому полю явным образом не присвоено, среда присваивает ему //значение ноль.

В приведенном примере в классе Demo описаны только различные виды данных класса, без описания методов. Класс Demo – новый тип данных. Для описания переменной этого типа необходимо создать экземпляр (переменную класса, объект):

Demo x = new Demo();

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

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

Виды элементов класса

Данные и методы являются основными элементами класса. Кроме того, в классе можно задавать целую гамму других элементов: свойства, события, индексаторы, операции, конструкторы, деструкторы, а также типы, представленные на рисунке 13.1.

Ниже приведено краткое описание всех элементов класса:

þ Константы класса хранят неизменяемые значения, связанные с классом.

þ Поля содержат данные класса.

þ Методы реализуют вычисления или другие действия, выполняемые классом или экземпляром.

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

þ Конструкторы реализуют действия по инициализации экземпляров или класса в целом.

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

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

þ Операции задают действия с объектами с помощью знаков операции.

þ События определяют уведомления, которые может генерировать класс.

þ Типы – это типы данных, внутренние по отношению к классу.

 

Рисунок 13.1 – Состав класса

 

 

<== предыдущая лекция | следующая лекция ==>
Спецификатор Описание. При статическом моделировании большое место занимает графическое (образно-знаковое) моделирование, называемое геометризацией залежи | Нормирование товарных запасов
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 417; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.