- •Основные понятия и принципы ооп
- •Абстракция:
- •Инкапсуляция:
- •Аспекты платформы .Net Framework
- •Эволюция и основные возможности c#
- •Структура программы и синтаксис конструкций c#
- •Понятие семантики в математике и программировании
- •Теория вычислений д.Скотта. Семантика c#
- •Понятие класса и объекта. Концептуальная модель
- •Классы, поля, методы в c#
- •Определение типов. Классификация систем типизации
- •Система типов cts. Базисные типы
- •Пространство имен. Преобразование типов
- •Наследование в ооп
- •Базовые и производные классы в c#
- •Понятие инкапсуляции в математике и программировании. Описание и применение инкапсуляции в c#
- •Виды области видимости. Рекомендации
- •Понятие полиморфизма
- •Интерфейсы, их связь с абстрактными классами. Реализация
- •Понятие события в математике и программировании. Моделирование событий
- •Делегаты. События как особый вид делегатов
- •Исключения и их обработка в c#
- •Графический интерфейс Windows Forms. Программные компоненты и модель
- •Основные классы. Иерархия классов. Основные контролы
- •Создание пользовательских компонентов
Наследование в ооп
Основные работы:
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)
Наследование
основная концепция ООП
в C# классы и стр. могут наследовать
наследуют все члены – поля, методы, свойства…
класс родитель называют базовый класс
класс наследник – дочерний
наследование позволяет установить иерархию типов
в .NET множественное наследование основано на интерфейсах
Базовые и производные классы в c#
Понятие инкапсуляции в математике и программировании. Описание и применение инкапсуляции в c#
Формализация (понятие инкапсуляции в математике)
лямбда – исчисление
лямбда термы выполняют роль объектов
связанные переменные выполняют роль свойств
свободные переменные выполняют роль методов
Комбинаторная логика
Комбинаторы роль объектов
Переменные роль свойств
Комбинаторы роль методов
Степень инкапсуляции:
Public – публичная область видимости
Private – приватная область видимости
Расширение области видимости:
Protected – доступность из класса и классов наследников
Internal – доступность из сборки с описание объекта
Protected internal – доступность из класса с описанием объекта, а также из сборки с описанием объекта
Инкапсуляция полей и констант:
1) Поле:
Инициализация факультативна, однако запрещен доступ к полям и методам того же типа
Поля структуры не подлежат инкапсуляции
2) Константа:
Значение должно быть вычислено в процессе компиляции
3) Поле только для чтения:
Необходимо инициализировать в описании или конструкторе
Значение обязательно должно быть вычислимым в ходе компиляции
Занимает область памяти
Статические поля и константы принадлежат классу а не объекту.