Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материал по ооп.docx
Скачиваний:
3
Добавлен:
04.08.2019
Размер:
63.16 Кб
Скачать
  1. Виды области видимости. Рекомендации

  2. Понятие полиморфизма

Работы:

  • 1934 – Черч – изобрёл лямбда- счисление

  • 1936 – Стратегия вызова по имени или значению

  • 1960 – Лендин– SECD машина

  • 1969 – Хиндли- Полиморфные системы типов

  • 1978 – Милнер- предл. расширить систему полиморфной типизации для ЯП ML

  • 1989-90- Кук, Кэннинг, Хилл и др. исследовали полиморфизм в ООП

  • Полиморфизм позволяет переопределять реакцию объекта производного класса на метод, определенный в базовом классе.

Преимущества полиморфизма:

  • унификация обработки объектов различной природы

  • снижение стоимости ПО

  • повторное использование кода

  • интуитивная прозрачность исходного текста

  • строгое математическое основание

концепция является универсальной и в равной степени применимо в ООП

  1. Методы вызова процедур. Абстрактные типы данных

Методы вызова процедур:

  1. Вызов по значению:

  • Формальный параметр является копией фактического параметра

  • Фактический параметр является выполняемым

  1. Вызов по имени (ссылке)

  • Формальный параметр является подстановкой фактического параметра

  • Фактический параметр должен быть переменной, формальный параметр является копией фактического параметра

  1. Вызов по необходимости

  • Значение не передается вызывающей функции

  • Не следует использовать в методах до того, как значение будет получено

  1. Передача параметров

  • По умолчанию параметры передаются по значению

  • Out и ref позволяют передавать параметры по ссылке

Out – можно не инициализировать

Ref – необходимо инициализировать в вызываемом методе, а в вызываемом можно как читать так и записывать

  1. Перезагрузка методов

  • Исполнение методов, используемых одинаковые имена

  • Изменение числа, типов и последовательности параметров

  • можно использование Sqr(int) и Sqr(long)…

  1. Список параметров

  • В с# можно описывать методы со списком параметров

  • Для задания параметра, который представляет собой список, используют массив

Компилятор передаёт параметр как массив заданного типа

  1. Абстрактные структуры данных. «Запечатанные» классы

  2. Динамическое и статическое связывание. Виртуальные классы и методы

Динамическое связывание означает то, что выбор вызываемого метода определяется не на этапе компиляции, а на этапе выполнения программы.

Сокрытие методов – используется ключевое слово new в дочерних классах.

Сложное динамическое связывание:

virtual – может быть изменён в наследниках

override – перепис-т

Требования к методам с приоритетами:

  • Свойства и индексаторы также могут иметь приоритет (virtual, override)

  • Статические методы не могут иметь приоритета

  • Только методы, описанные как виртуальные могут иметь приоритет в производных классах

  • Методы с приоритетами необходимо описывать как override

«Запечатанные» классы:

  • Такой класс, который не может иметь наследников

  • Описывается ключевым словом Sealed

  • Sealed может быть применено к классам и методам

Преимущества:

  • Безопасность

  • Эффективность

Преимущества полиморфизма:

  • унификация обработки объектов различной природы

  • снижение стоимости ПО

  • повторное использование кода

  • интуитивная прозрачность исходного текста

  • строгое математическое основание

концепция является универсальной и в равной степени применимо в ООП