
- •Классы и структуры в c#. Класс Object, его методы.
- •Объявление и вызов методов класса.
- •Вызов методов:
- •Конструктор и деструктор класса.
- •Отношение наследования, объявление класса-потомка.
- •Создание экземпляров класса-потомка, взаимодействие конструкторов родителя и потомка.
- •Три способа изменения методов класса-родителя в классе-потомке.
- •Статическое и динамическое связывание
- •Полиморфизм. Три механизма реализации полиморфизма.
- •16. Абстрактные классы. Абстрактные классы
- •17. Интерфейсы, объявления интерфейсов.
- •18. Члены интерфейсов.
- •Реализация интерфейсов
Объявление и вызов методов класса.
Объявление методов:
Операции (operator) — это функции-члены, переопределяющие способ выполнения существующих операций применительно к объектам данного класса (так называемая перегрузка операций)
Индексаторы (indexer) позволяют индексировать объекты таким же способом, как массив или коллекцию.
Если метод возвращает значение, то для указания точки выхода должен использоваться оператор возврата вместе с возвращаемым значением
Каждый параметр состоит из имени типа параметра и имени, по которому к нему можно обратиться в теле метода
Если метод не возвращает ничего, то в качестве типа возврата указывается void; при этом включать в тело метода оператор возврата не обязательно — метод возвращает управление автоматически по достижении закрывающей фигурной скобки
Метод может содержать любое необходимое количество операторов возврата
Вызов методов:
Методы, принадлежащие экземплярам класса, вызываются с использованием в качестве уточняющего префикса имени объекта
Статические методы, принадлежащие классу, вызываются с использованием в качестве уточняющего префикса имени класса
Вызов статических методов может происходить до создания первого экземпляра класса
Конструктор и деструктор класса.
Конструктор (constructor) – это специальный метод класса, обеспечивающий создание объектов
Основной задачей конструктора является выполнение запроса на выделение памяти для размещения объекта и инициализация его полей
Конструктор возвращает адрес области памяти, выделенной для размещения объекта
Для создания объекта некоторого класса необходимо
объявить соответствующую объектную переменную
имя_класса имя_объектной_переменной;
вызвать конструктор класса
Имя конструктора совпадает с именем его класса и для его вызова используется ключевое слово new:
new имя_класса([список_аргументов])
Любой класс имеет конструктор по умолчанию, не содержащий параметров
Такой конструктор инициализирует числовые поля нулевым значением, булевское поле значением False, а поля ссылочных типов значением null
Деструктор (finalizer) по своему назначению противоположен конструктору – он выполняет действия, предшествующие удалению объекта
Деструктор имеет то же имя, что и класс, но с предшествующим символом тильды (~)
В отличие от конструктора деструктор вызывается не из программного кода, а «сборщиком мусора» среды CLR, который и определяет, что объект больше не нужен
У каждого класса есть деструктор по умолчанию и в большинстве случаев нет необходимости в создании пользовательского деструктора
Свойства класса, их описание и использование.
Свойства (property) — это наборы функций чтения и записи для закрытых полей класса
Синтаксис описания свойств:
[модификаторы] имя_типа имя_свойства
{
get { }
set { }
}
Свойства объединяют черты полей и методов
Первая строка их объявления синтаксически совпадает с объявлением полей, но в отличие от последних свойства обладают двумя функциональными блоками, обеспечивающими доступ к закрытым полям класса
Отношения между классами «клиент-поставщик» и «родитель-потомок»
Два основных типа отношений между классами определены в ОО-системах. Первое отношение "клиенты и поставщики", называется часто клиентским отношением или отношением вложенности (встраивания). Второе отношение "родители и наследники" называется отношением наследования.
Определение 1. Классы А и В находятся в отношении " клиент-поставщик ", если одним из полей класса В является объект класса А. Класс А называется поставщиком класса В, классВ называется клиентом класса А.
Определение 2. Классы А и В находятся в отношении " родитель - наследник ", если при объявлении класса В класс А указан в качестве родительского класса. Класс А называется родителем класса В, класс В называется наследником класса А.
Оба отношения - наследования и вложенности - являются транзитивными. Если В - клиент А, а С - клиент В, то отсюда следует, что С - клиент А. Если В - наследник А, а С - наследник В, то отсюда следует, что С - наследник А.