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

Основные работы:

  • 1950 Х. Хассе – диаграммы для графической иллюстрации отношения частичного порядка

  • 1976 Руссополос – изобрел фреймы, ввел ISA отношения

  • 1979 Д.Скотт – теория полных и непрерывных решеток

  • 1988-90 Карделли, Кук и др. – исследовали семантику наследования

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

Наследование позволяет описать сначала общий класс окна Windows, на его основе описать общий класс диалогового окна Windows, а уже на основе этого класса сформировать класс конкретного диалогового окна, используемого для реализации конкретного пользовательского интерфейса.

Наследование – свойсво произв. объекта сохранять поведение родительского

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

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

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

любой 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 множественное наследование основано на интерфейсах

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1) Поле:

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

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

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

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

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

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

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

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

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