Классы в языке C#

Понятие класса является ключевым в объектно-ориентированном программировании.

Мы активно использовали методы класса Console, Convert, Math. При анализе типов данных было обнаружено, что встроенные типы-значения задаются структурами, а ссылочные типы задаются классами (строки и объекты). Более того, все данные с любой сложной организацией мы можем определять только в каком-либо классе (Program, Form1 или другом).

Что дает нам использование класса? Класс представляет собой шаблон, по которому определяется форма объекта. В нем указываются данные и код, который будет оперировать этими данными.
В C# используется спецификация класса для построения объектов, которые являются экземплярами класса. Следовательно, класс, по существу, представляет собой ряд схематических описаний способа построения объекта.

При этом очень важно подчеркнуть, что класс является логической абстракцией. Физическое представление класса появится в оперативной памяти лишь после того, как будет создан объект этого класса.

Структуры похожи на классы, но проще их, в них отсутствуют некоторые возможности, заложенные только в классы.

Классы и структуры — это, по сути, шаблоны, по которым можно создавать любые объекты. Каждый объект содержит данные и методы, манипулирующие этими данными. Начнем с класса. Полезна для понимания следующая схема:

31
При определении класса объявляются данные, которые он содержит, а также код, оперирующий этими данными.
Если самые простые классы могут содержать только код или только данные, то большинство настоящих классов содержит и то и другое.
Точнее говоря, данные содержатся в данных-членах, определяемых классом, а код — в функциях-членах. Подчеркнем, что в C# предусмотрено несколько разновидностей данных-членов и функций-членов.

Данные-члены — это те члены, которые содержат данные класса — поля, константы, события.

Данные-члены могут быть статическими (static). Член класса (объект) является членом экземпляра, если только он не объявлен явно как static. Статические данные-члены могут использоваться как общие данные для нескольких объектов (см. далее).

Рассмотрим виды этих данных:
1. Поле (field). Это любые переменные, ассоциированные с классом.
2. Константа (const). Константы могут быть ассоциированы с классом тем же способом, что и переменные. Константа объявляется с помощью ключевого слова const.
Примечание. Если поле или константа объявляются как public (см. далее), то в этом случае они становятся доступными извне класса. Подробнее о константах — см. Переменные и константы.
3. Событие (event). Это члены класса, позволяющие объекту уведомлять вызывающий код о том, что случилось нечто достойное упоминания, например, изменение свойства класса либо некоторое взаимодействие с пользователем. Клиент может иметь код, известный как обработчик событий, реагирующий на них. Создание собственных событий-делегатов рассмотрим позже.

Функции-члены — это члены, которые обеспечивают некоторую функциональность для манипулирования данными класса.
Они включают методы, свойства, конструкторы, финализаторы, операции и индексаторы:
1.Метод (method). Это функции, ассоциированные с определенным классом. Как и данные-члены, по умолчанию они являются членами экземпляра. Они могут быть объявлены статическими с помощью модификатора static, тогда метод становится доступным без указания-объявления объекта.
2.Свойство (property). Это наборы функций, которые могут быть доступны клиенту таким же способом, как общедоступные поля класса. В C# предусмотрен специальный синтаксис для реализации чтения и записи свойств для классов, поэтому писать собственные методы с именами, начинающимися на Set и Get, не понадобится. Поскольку не существует какого-то отдельного синтаксиса для свойств, который отличал бы их от нормальных функций, создается иллюзия объектов как реальных сущностей, предоставляемых клиентскому коду.
3.Конструктор (constructor). Это специальные функции, вызываемые автоматически при инициализации объекта. Их имена совпадают с именами классов, которым они принадлежат, и они не имеют типа возврата. Конструкторы полезны для инициализации полей класса.
4.Финализатор (finalizer). Вызываются, когда среда CLR определяет, что объект больше не нужен. Они имеют то же имя, что и класс, но с предшествующим символом тильды. Предсказать точно, когда будет вызван финализатор (другой термин – деструктор), невозможно.
5.Операция (operator). Это простейшие действия вроде + или -. Когда вы складываете два целых числа, то, строго говоря, применяете операцию + к целым. Однако C# позволяет указать, как существующие операции будут работать с пользовательскими классами (так называемая перегрузка операции).
6.Индексатор (indexer). Позволяют индексировать объекты таким же способом, как массив или коллекцию.

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

Познакомьтесь с понятиями: Открытые и закрытые члены класса, модификаторы доступа, а также с использованием ключевого слова STATIC. Следующая тема: «структура», после чего выясним ее отличие от класса.


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
1 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

ну, прикольно

1
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x