- •Вопрос 2) Понятие класса и объекта
- •Вопрос 3) Структура класса и синтаксис декларации класса
- •Вопрос 4) Доступ к членам класса. Закрытые и открытые члены класса.
- •Вопрос 5) Принцип инкапсуляции
- •Вопрос 6) Методы. Способы передачи параметров
- •Вопрос 7) Реализация методов класса. Конструкторы и деструкторы. Методы и их параметры
- •Конструкторы и деструкторы
- •Вопрос 8) Полиформизм, перегрузка методов
- •Виртуальные методы
- •Абстрактные классы
- •Вопрос 10) Интерфейсы c#
- •Вопрос 11) Классы и структуры Класс
- •Вопрос 12) Создание нового экземпляра класса.
- •13. Преобразование методов базового класса. Вызов методов базового класса.
- •Вопрос 14) Свойства и методы в ооп
- •Вопрос 15) События и методы в ооп События
- •Вопрос 16) Индексаторы с#
- •Вопрос 17) Делегаты в классах с#
- •Вопрос 18) Обобщенные классы или шаблоны.
Вопрос 11) Классы и структуры Класс
Класс — это конструктор, который позволяет создавать свои собственные пользовательские типы путем группирования переменных других типов, методов и событий. Класс подобен чертежу. Он определяет данные и поведение типа. Если класс не объявлен статическим, то клиентский код может его использовать, создав объекты или экземпляры, назначенные переменной. Переменная остается в памяти, пока все ссылки на нее не выйдут из области видимости. В это время среда CLR помечает ее пригодной для сборщика мусора. Если класс объявляется статическим, то в памяти остается только одна копия и клиентский код может получить к ней доступ только посредством самого класса, а не переменной экземпляра.
Виды классов
Базовый (родительский) класс
Производный класс (наследник, потомок)
Абстрактный класс
Виртуальный класс
Интерфейс
Члены классов
Класс определяется как список своих членов. К членам класса относятся его поля (свойства) и функции (методы) .
Каждому члену класса можно установить его область доступа (access control level). Область доступа члена класса определяет участки кода, из которых к этому члену будет возможно обращаться. В большинстве объектно-ориентированных языков программирования поддерживаются следующие области доступа:
private (закрытый, внутренний член класса) — обращения к члену допускаются только из кода методов класса, в котором этот член определён. Любые наследники класса уже не смогут получить доступ к этому члену;
protected (защищённый, внутренний член иерархии классов) — обращения к члену допускаются из кода методов класса, в котором этот член определён, или из любых его классов-наследников;
public (открытый член класса) — обращения к члену допускаются из любого кода.
Структуры
Структуры используют большую часть того же синтаксиса, что и классы, однако они более ограничены по сравнению с ними.
В объявлении структуры поля не могут быть инициализированы до тех пор, пока они будут объявлены как постоянные или статические.
Структура может не объявлять используемый по умолчанию конструктор (конструктор без параметров) или деструктор.
Структуры не могут наследовать от классов или других структур.
Структуры копируются при присваивании. При присваивании структуры к новой переменной выполняется копирование всех данных, а любое изменение новой копии не влияет на данные в исходной копии.
Структуры являются типами значений, а классы — ссылочными типами.
В отличие то классов, структуры могут быть созданы без использования нового оператора.
Структуры могут объявлять конструкторы, имеющие параметры.
Структура не может быть унаследованной от другой структуры или класса и не может быть основой для других классов. Все структуры наследуют непосредственно от System.ValueType, который наследует от System.Object.
Структуры могут реализовывать интерфейсы.
Структура может использоваться как тип, допускающий значение NULL, и ей можно назначить значение NULL.