- •Основы объектно-ориентированного анализа и проектирования Введение в объектно-ориентированное программирование Эволюция разработки программного обеспечения
- •Технологии программирования
- •Основные концепции объектно-ориентированного программирования
- •Реализация объектно-ориентированного подхода Инкапсуляция. Свойства
- •При использовании динамики:
- •Конструкторы объектов
- •Деструкторы объектов
- •Наследование, агрегация
- •Полиморфизм, виртуальные и динамические методы
- •Абстрактные методы
- •Перегрузка методов
- •События и делегирование
- •Приведение объектных типов, операторы is и as
- •Области видимости
- •Перекрытие и переопределение свойств
- •Объектно-ориентированное программирование в Borland Delphi. Применение объектно-ориентированного программирования
- •Иерархия библиотечных классов в Borland Delphi.
- •Создание компонентов в среде Delphi Способы создания компонентов
- •Процесс создания компонентов
- •Создание модуля
- •Создание описания и реализации класса для компонента
- •Тестирование неустановленного компонента
- •Создание графического изображения для компонента
- •Инсталляция и деинсталляция компонента
- •Создание свойств, событий и методов компонентов Работа со свойствами
- •События
- •Обработка сообщений Windows
- •Сообщения Windows
- •Обработчики сообщений Windows
Перекрытие и переопределение свойств
Определение свойства, которое не специфицирует его тип называется перекрытием свойства. Перекрытие свойств позволяет изменить для свойства потомка области видимости или спецификации. Простейшее перекрытие включает в себя только слово property, сопровождаемое именем свойства. Такая форма используется для изменения видимости свойства. Перекрытие свойства может включать директивы read, write, default; любая такая директива перекроет соответствующую директиву в предке. Видимость можно изменять только в направлении возрастания.
Пример:
При перекрытии свойства Size добавлено служебное слово write, что дает возможность модифицировать свойство. При перекрытии свойств Text и Color изменена видимость свойств с protected в published. При перекрытии свойства Color также добавлено значение по умолчанию clBlue.
Повторное объявление свойства в потомке с именем, совпадающим с именем свойства предка, при котором указывается тип свойства переопределяет свойство предка, а не перекрывает его. Это означает, что будет создано новое свойство с тем же самым именем, что и у свойства предка. Любое описание свойства с указанием типа должно быть полным в отличие от случая перекрытия.
При перекрытии и переопределении свойств в классе-потомке перекрытие методов доступа к нему всегда статическое. Таким образом, в следующем примере при чтении или записи свойства Value объекта MyObject будут вызваны методы Method1 и Method2, то есть те, которые определены для типа объекта -класса предка, а не для реально созданного объекта типа класс-потомок:
Если в качестве методов чтения и записи свойств использовать виртуальные или динамические методы, то вызываться будет метод, соответствующий реальному классу объекта:
Объектно-ориентированное программирование в Borland Delphi. Применение объектно-ориентированного программирования
Любая программа состоит из двух сравнительно независимых частей: функциональная часть и интерфейсная часть. Функциональная часть предназначена для реализации того, для чего собственно программа и предназначена. Интерфейсная - реализует взаимодействие функциональной части с внешним миром, т.е. с человеком, аппаратурой ПК и другими программами.
Основная часть разработки любой прикладной программы - это разработка ее функциональной части. Основная работа прикладного программиста - также разработка функциональной части. При программировании функциональной части задача программиста - разработка новых классов и иерархий классов, которые в своем взаимодействии реализуют требуемые функциональные возможности системы. Это требует как знаний в предметной области, так и знаний в области объектно-ориентированного анализа, проектирования и программирования. При разработке интерфейсной части обычно используются стандартные объектно-ориентированные библиотеки. В настоящее время имеется достаточно большое число таких библиотек для разных языков программирования под разными операционными системами. Разработка интерфейсной части включает в себя:
· проектирование интерфейса,
· при необходимости разработку недостающих визуальных компонентов,
· организацию стандартных и разработанных визуальных компонентом требуемым образом.
Этап разработки новых визуальных компонентов является необязательным. Имеющихся компонентов в большинстве случаев бывает достаточно. Организация стандартных компонентов не требует создания новых классов, а только использования уже существующих. Таким образом, разработка интерфейсной части прикладной программы требует разработки новых классов только в том редком случае, когда имеющихся визуальных компонентов недостаточно. Для разработки интерфейсной части из стандартных компонентов необходимо уметь использовать эти компоненты, т.е. знать назначение и программный интерфейс каждого из них, не вдаваясь в подробности их внутренней организации.
Разработка новых визуальных компонентов обычно производится путем порождения классов-потомков от уже существующих в используемой библиотеке и требует как знаний концепций ООП и конкретного языка программирования, так и структуры конкретной объектно-ориентированной библиотеки компонентов.