Слайд 2Класс определение
Класс представляет собой шаблон, по которому определяется форма объекта.
Он должен представлять собой
![Класс определение Класс представляет собой шаблон, по которому определяется форма объекта. Он](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-1.jpg)
одну логическую сущность, например, являться моделью реального объекта или процесса. Элементами класса являются данные и функции, предназначенные для их обработки.
Слайд 3Описание класса
[ атрибуты][модификатор][ модификатор доступа] class имя класса [ : предки ]
{
![Описание класса [ атрибуты][модификатор][ модификатор доступа] class имя класса [ : предки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-2.jpg)
тело-класса}
Как видите, обязательными являются только ключевое слово class , а также имя и тело класса.
Слайд 4Атрибуты
Необязательные атрибуты задают дополнительную информацию о классе.
Изучение их будет отдельно и намного
![Атрибуты Необязательные атрибуты задают дополнительную информацию о классе. Изучение их будет отдельно и намного позднее](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-3.jpg)
позднее
Слайд 5Модификаторы
abstract - абстрактный класс, служит только для порождения потомков.
sealed - бесплодный класс,
![Модификаторы abstract - абстрактный класс, служит только для порождения потомков. sealed -](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-4.jpg)
запрещает наследование от класса.
static - статический класс, используется без создания объекта.
Слайд 6Модификаторы доступа
- public – доступ к классу возможен из любого места одной сборки либо
![Модификаторы доступа - public – доступ к классу возможен из любого места](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-5.jpg)
из другой сборки, на которую есть ссылка;
- internal – доступ к классу возможен только из сборки, в которой он объявлен.
Слайд 8Данные-члены класса
Данные-члены — это те члены, которые содержат данные класса.
![Данные-члены класса Данные-члены — это те члены, которые содержат данные класса.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-7.jpg)
Слайд 9Данные-члены класса
Поля (field) Это любые переменные, ассоциированные с классом.
Константы могут быть ассоциированы
![Данные-члены класса Поля (field) Это любые переменные, ассоциированные с классом. Константы могут](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-8.jpg)
с классом тем же способом, что и переменные. Константа объявляется с помощью ключевого слова const. Если она объявлена как public, то в этом случае становится доступной извне класса.
Слайд 10Данные-члены класса
События Это члены класса, позволяющие объекту уведомлять вызывающий код о том,
![Данные-члены класса События Это члены класса, позволяющие объекту уведомлять вызывающий код о](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-9.jpg)
что случилось нечто достойное упоминания, например, изменение свойства класса либо некоторое взаимодействие с пользователем. Клиент может иметь код, известный как обработчик событий, реагирующий на них.
Слайд 11Функции члены класса
Функции-члены — это члены, которые обеспечивают некоторую функциональность для манипулирования данными
![Функции члены класса Функции-члены — это члены, которые обеспечивают некоторую функциональность для манипулирования данными класса.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-10.jpg)
класса.
Слайд 12Функции члены класса
Методы (method) Это функции, ассоциированные с определенным классом.
class Printer
![Функции члены класса Методы (method) Это функции, ассоциированные с определенным классом. class](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-11.jpg)
{
public void Print(){
//код метода } }
Слайд 13Функции члены класса
Свойства (property) Это наборы функций, которые могут быть доступны клиенту
![Функции члены класса Свойства (property) Это наборы функций, которые могут быть доступны](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-12.jpg)
таким же способом, как общедоступные поля класса. В C# предусмотрен специальный синтаксис для реализации чтения и записи свойств для классов, поэтому писать собственные методы с именами, начинающимися на Set и Get, не понадобится.
Слайд 14Функции члены класса
private string text;
public string Text
{
set { text
![Функции члены класса private string text; public string Text { set {](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-13.jpg)
= value; }
get { return text; }
}
Слайд 15Функции члены класса
Конструкторы (constructor) Это специальные функции, вызываемые автоматически при инициализации объекта.
![Функции члены класса Конструкторы (constructor) Это специальные функции, вызываемые автоматически при инициализации](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-14.jpg)
Их имена совпадают с именами классов, которым они принадлежат, и они не имеют типа возврата. Конструкторы полезны для инициализации полей класса.
Слайд 17Функции члены класса
Финализаторы (finalizer)
Вызываются, когда среда CLR определяет, что объект больше не нужен. Они
![Функции члены класса Финализаторы (finalizer) Вызываются, когда среда CLR определяет, что объект](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-16.jpg)
имеют то же имя, что и класс, но с предшествующим символом тильды. Предсказать точно, когда будет вызван финализатор, невозможно.
Слайд 18Функции члены класса
Операции (operator)
Это простейшие действия вроде + или -. Когда вы
![Функции члены класса Операции (operator) Это простейшие действия вроде + или -.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-17.jpg)
складываете два целых числа, то, строго говоря, применяете операцию + к целым. Однако C# позволяет указать, как существующие операции будут работать с пользовательскими классами (так называемая перегрузка операции).
Слайд 19Функции члены класса
Индексаторы (indexer)
Позволяют индексировать объекты таким же способом, как массив или
![Функции члены класса Индексаторы (indexer) Позволяют индексировать объекты таким же способом, как](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-18.jpg)
коллекцию.
В общем случае
public тип возвращаемого значения this[int index] {
// set и get методы }
Слайд 20Функции члены класса
class TempRecord {
private float[] temps = new float[10] {
![Функции члены класса class TempRecord { private float[] temps = new float[10]](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-19.jpg)
56.2F, 56.7F, 56.5F, 56.9F, 58.8F, 61.3F, 65.9F, 62.1F, 59.2F, 57.5F };
public int Length { get { return temps.Length; } }
public float this[int index] {
get { return temps[index]; }
set { temps[index] = value; } } }
Слайд 21Создание объектов
Объявив класс, мы теперь можем создавать объекты. Делается это при помощи
![Создание объектов Объявив класс, мы теперь можем создавать объекты. Делается это при](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/920419/slide-20.jpg)
ключевого слова new и имени класса: