Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Н.Р. Бухараев (3 семестр)(ООП в интегрированной...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.41 Mб
Скачать

Именование типов в c# Тип данных «класс»

Основным элементом программы, созданной в объектно-ориентированном стиле, является класс.

Переменные типа «класс» называются объектами. В реальности определяется не сам объект, а ссылка на него – факт, который в синтаксисе явным образом нигде не указывается.

Семантика: класс - именованный тип данных. Класс определяет тип данных для описания множества объектов с одинаковым набором свойств и поведением.

Синтаксис определения классов:

[атрибуты];

[модификаторы доступа];

class (имя_класса) [: базовый класс [, интерфейсы] ]

{

//поля класса

(список полей Field1,…,Fieldk)

…….

//методы класса

(список объявлений методов с реализацией: Method1,…,Method­n)

…….

// свойства класса

…….

// события класса

…….

// подклассы, делегаты

}, где:

Fieldii – в точности как при описании типа «запись», только с некоторыми дополнительными опциями.

Methodi – заголовок функции с реализацией

Замечание:

Объявление (определение) класса помещается в логически связанное определение имён, т.е. в namespace с определением методов (реализацией, телом функции) и полей.

Для использования представления в C#, сохранённого в другом модуле необходимо осуществить операцию СБОРКИ.

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

Конструкторы и деструкторы

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

Среди методов класса явно выделяют конструкторы и деструкторы, что явным образом отражается в синтаксисе:

-Constructor (конструктор - процедура создания объекта по ссылке):

Class name_of_the_class

{

name_of_the_class (FP); //, где FP – список формальных параметров

}

Если класс или структура создаются, то вызывается его конструктор. Конструкторы имеют то же имя, что и класс или структура. Они обычно инициализируют элементы данных нового объекта.

-Destructor (деструктор - метод, который будет вызываться непосредственно перед окончательным уничтожением объекта системой "сборки мусора".):

Class name_of_the_class

{

~ name_of_the_class (FP); // , где FP – список формальных параметров

{

// код деструктора

}

}

Замечание: система "сборки мусора" в С# освобождает память от лишних объектов автоматически, действуя незаметно и без всякого вмешательства со стороны программиста.

"Сборка мусора" происходит следующим образом:

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

"Сборка мусора" происходит лишь время от времени по ходу выполнения программы. Она не состоится, если существует один или более объектов, которые больше не используются. Следовательно, нельзя заранее знать или предположить, когда именно произойдет "сборка мусора".

Тем не менее инициализация "сборки мусора" вручную в большинстве случаев не рекомендуется, поскольку это может привести к снижению эффективности программы. Кроме того, у системы "сборки мусора" имеются свои особенности — даже если запросить "сборку мусора" явным образом, все равно нельзя заранее знать, когда именно будет утилизирован конкретный объект.

Помимо базовой семантики класса как именованного типа, понятие класса связывается с дополнительными способами описания и использования абстрактных типов, которые обычно формулируются в терминах трёх основных понятий: инкапсуляция, наследование и полиморфизм.