- •1.Понятие жизненного цикла программного обеспечения (по). Этапы разработки по.
- •Сравнение стратегий конструирования по.
- •4. Спиральная модель жизненного цикла разработки программного обеспечения б. Боэма.
- •5.Основные приемы экстремального программирования (xp).
- •1.Короткий цикл обратной связи:
- •7. Структура оконного приложения в среде Delphi.
- •8.Модули. Структура модуля. Использование модулей в приложении
- •9.Основные типы данных языка Delphi
- •10. Структурированные типы данных. Записи. Обращение к полям записей. Оператор with. Тип "запись" (record)
- •11. Структурированные типы данных. Записи. Вариантная часть записей.
- •Описание и использование подпрограмм в языке Паскаль. Формальные и фактические параметры. Параметры-значения и параметры-переменные.
- •Описание и вызов процедур и функций
- •13. Библиотека визуальных компонентов Delphi. Назначение vcl
- •Структура vcl
- •14. Основные события Delphi. Методы обработки событий.
- •15. Объектно-ориентированный подход при разработке программы. Основные принципы объектно-ориентированного программирования.
- •16. Определение класса и объекта.
- •Примеры Классов: Класс фигур:
- •17. Атрибуты доступа к элементам класса.
- •Пример: пример “атрибуты доступа” (лекция №__)
- •Структура проекта
- •Описание классов
- •Модуль Unit1
- •Модуль Unit2
- •18. Методы как составляющие элементы класса. Конструкторы и деструкторы.
- •Пример: пример № 1. “точка на прямой”
- •19. Методы как составляющие элементы класса. Модификаторы и селекторы пример № 3. Класс “товар”
- •20. Принцип инкапсуляции. (Забавная статья, но вроде понятно)
- •21. Принцип наследования.
- •Типы наследования
- •Простое наследование
- •Множественное наследование
- •Реализация наследования на примере языка Delphi.
- •Create; begin Inherited; // Всегда вызывается в начале конструктора ... End; Иерархия стандартных классов Delphi
- •Совместимость типов для классов в иерархии наследования. Преобразование и приведение типов.
- •Совместимость объектов различных классов
- •Контроль и преобразование типов
- •Обработка исключительных ситуаций. Стандартные классы исключений на примере языка Delphi.
- •Блок try … except
- •Блок try … finally
- •Описание и обработка пользовательских исключений на примере языка Delphi.
21. Принцип наследования.
Способы многократного использования кода в приложении. Определение наследования. Наследование данных и методов. Иерархическая схема наследования. Обобщение и специализация. Отношение “is-a”.
Простое и множественное наследование. Проблемы множественного наследования.
Применение наследования 1) для многократного использования реализации; 2) для отличия - добавления новых поведений и свойств и переопределения старых; 3) для замены типов (объект-потомок может использоваться вместо объекта-предка). Примеры.
Существует два способа многократного использования кода класса – собственно использование и наследование. К использованию можно отнести:
Объект другого класса (используемого) присутствует как поле данного класса;
Объект используемого класса присылается методу данного класса в качестве параметра или доступен глобально;
Объект используемого класса создается в рамках работы методов данного класса.
Использование – более свободная форма, чем наследование, однако наследование во многих случаях более эффективно, а так же позволяет реализовать так называемое полиморфное поведение.
В Delphi класс может иметь только одного предка. Наследуются все элементы родительского класса. Однако некоторые из них, что были объявлены в секции private родительского класса, перестают быть видимыми (если только оба класса объявлены не в одном модуле). Однако физически они присутствуют и унаследованные видимые методы и свойства, ссылающиеся на невидимые элементы, будут работать. В отношении дальнейшего наследования атрибуты сохраняют свою область видимости, если ее специально не изменить, еще раз описав их с другим атрибутом видимости. Для полей и методов фактически это будет означать добавление нового поля или метода (соответственно) и сокрытие старого. В отношении свойств есть два механизма – перекрытие (override) и переопределение (redeclaration). Первый позволяет изменить видимость и/или спецификаторы свойства. Оно может не включать спецификаторов вообще. Второй – полностью изменить свойство, вплоть до типа (фактически создать новое). В первом случае не указывается тип свойства, во втором – указывается, и т.к. это фактически новое свойство, оно должно удовлетворять всем требованиям к описанию нового свойства. Для методов описанных с помощью особых директив virtual и dynamic тоже есть возможность перекрытия (т.е. новый метод именно заменяет старый, а не прячет его.
про is-a (иногда пишется ISA).
Если есть два объекта: A и B, то можно сказать, что B is-a A, если в программе везде, где используется A, можно использовать B. Несмотря на мудреное определение, все просто.
Типы наследования
Простое наследование
Класс, от которого произошло наследование, называется базовым или родительским (англ. base class). Классы, которые произошли от базового, называются потомками,наследниками или производными классами (англ. derived class).
Множественное наследование
При множественном наследовании у класса может быть более одного предка. В этом случае класс наследует методы всех предков. Достоинства такого подхода в большей гибкости.
Множественное наследование — потенциальный источник ошибок, которые могут возникнуть из-за наличия одинаковых имен методов в предках