Описания в виде фреймов и диаграмм



Свойства отношения частного порядка:

§ рефлексивность

любой a: a is A a

§ транзитивность

любые a, b, c : a is A b, b is A с => a is A с

§ антисимметричность

любые a, b : a is A b => NOT (b is A a)

Наследование

1. основная концепция ООП

2. в C# классы и стр. могут наследовать

3. наследуют все члены – поля, методы, свойства…

4. класс родитель называют базовый класс

5. класс наследник – дочерний

6. наследование позволяет установить иерархию типов

в .NET множественное наследование основано на интерфейсах

19. Базовые и производные классы в C#

20. Понятие инкапсуляции в математике и программировании. Описание и применение инкапсуляции в C#

Формализация (понятие инкапсуляции в математике)

1) лямбда – исчисление

§ лямбда термы выполняют роль объектов

§ связанные переменные выполняют роль свойств

§ свободные переменные выполняют роль методов

2) Комбинаторная логика

§ Комбинаторы роль объектов

§ Переменные роль свойств

§ Комбинаторы роль методов

Степень инкапсуляции:

1) Public – публичная область видимости

Private – приватная область видимости

Расширение области видимости:

§ Protected – доступность из класса и классов наследников

§ Internal – доступность из сборки с описание объекта

§ Protected internal – доступность из класса с описанием объекта, а также из сборки с описанием объекта

Инкапсуляция полей и констант:

1) Поле:

§ Инициализация факультативна, однако запрещен доступ к полям и методам того же типа

§ Поля структуры не подлежат инкапсуляции

2) Константа:

§ Значение должно быть вычислено в процессе компиляции

3) Поле только для чтения:

§ Необходимо инициализировать в описании или конструкторе

§ Значение обязательно должно быть вычислимым в ходе компиляции

§ Занимает область памяти

Статические поля и константы принадлежат классу а не объекту.

Виды области видимости. Рекомендации

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

Работы:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

override – перепис-т

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Дата добавления: 2018-04-15; просмотров: 374; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!