Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпора2 - копия2.docx
Скачиваний:
5
Добавлен:
22.09.2019
Размер:
60.39 Кб
Скачать

18.Создание классов-контейнеров в языке c#. Индексаторы.

Индексаторы – члены класса, которые

позволяют получить доступ к полям объекта способом доступа к массивам, то есть по индексу.

Синтаксис индексатора аналогичен синтаксису свойства:

[атрибуты] [спецификаторы] тип this [список параметров]

{

get { возврат значения элемента с указанными индексами}

set { присваивание значения элементу с указанными индексами }

}

19.Производные классы. Наследование свойств как принцип ооп. Отношение «Быть»

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

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

Н

а вершине любой иерархии классов в .NET всегда находится базовый класс Object. Возможности этого класса вначале дополняются классом Shape. Это свойства, поля и методы, являющиеся общими для всех

геометрических фигур (shapes). Класс Ellipse, производный от Shape, дополняет возможности двух базовых классов своими собственными уникальными свойствами. Диаграмму, можно прочесть следующим образом: «Эллипс есть геометрическая фигура, которая есть объект». Когда классы связываются друг с другом отношениями наследования, это означает, что между ними устанавливаются отношения типа

«быть» (is-a). Такой тип отношений называется также классическим наследованием.

21.Вложенные классы языка c# и их применение при программировании.

Класс, описанный в теле другого класса, называется вложенным (nested) классом.

// внешний класс

public class MyClass

{

// Члены внешнего класса

……………………

//внутренний класс

public class MyNestedClass

{

// Члены внутреннего класса

……………………..

}

}

1.Вложенные классы могут объявляться и как private, и как public. Однако классы, которые объявлены в пространстве имен напрямую (то есть те классы, которые не вложены ни в

-33-

какой другой класс), не могут быть объявлены как private.

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

3.Вложенные классы улучшают читаемость кода — если нас не интересует устройство основного класса, то разбирать работу вложенного класса нет необходимости.

22.Виртуальные методы. Поддержка полиморфизма.

К механизму виртуальных функций (virtual function) обращаются в тех случаях, когда в базовый класс необходимо поместить функцию, которая должна по-разному выполняться в производных классах. Виртуальные функции важны потому, что они используются для поддержки динамического полиморфизма.

Переопределение метода базового класса в производных

1. В базовом классе заголовок метод должен содержать служебное слово virtual.

2. В производных классах переопределяемые методы должны быть записаны со служебным словом override.

С помощью виртуальных методов реализуется один из основных принципов объектно-ориентированного программирования – полиморфизм. Это слово в переводе с греческого означает «много форм», что в данном случае означает «один вызов – много методов». Применение виртуальных методов обеспечивает гибкость и возможность расширения функциональности класса.