- •Принципы объектно-ориентированного программирования.
- •Структура класса.
- •Свойства.
- •Статические и виртуальные методы.
- •Перезагружаемые методы.
- •Конструкторы и деструкторы.
- •Интегрированная среда разработки Delphi.
- •Визуальные средства разработки.
- •Программирование с управлением по событиям.
- •Абстрактный метод.
- •Методы класса.
- •Исключительные ситуации.
- •Атрибуты доступа в Delphi.
- •Обработка исключительных ситуаций.
- •Библиотека визуальных компонентов в Delphi (vcl).
- •Ссылки на классы.
- •Указатели на методы.
- •Фреймы и шаблоны компонентов.
- •Delphi 2009: отличия от предыдущих версий.
- •Классы и модули.
- •Модули и программы.
- •Информация о типе во время выполнения.
- •Полиморфизм и виртуальные методы.
Принципы объектно-ориентированного программирования.
Принцип наследования - возможность заимствовать конструкторы и поведения одних классов у других (поля, методы). Схема наследования – линейная(у класса потомка имеется только один класс предок). Свойства и поля наследуются безусловно, а методы могут и наследоваться, и переопределяться.
Принцип инкапсуляции – Класс представляет собой единство трех сущностей – полей, методов и свойств. Объединение этих сущностей в единое целое и называется инкапсуляцией. Инкапсуляция позволяет во многом изолировать класс от остальных частей программы, сделать его самодостаточным для решения конкретной задачи.
Принцип полиморфизма – это свойство классов решать схожие по смыслу проблемы разными способами. Поведенческие свойства класса определяются набором входящих в него методов. Изменяя алгоритм того или иного метода в потомках класса ,программист может придавать этим потомкам отсутствующие у родителей специфические свойства. Для изменения этого метода необходимо перекрыть его в потомке, то есть объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте-родителе и объекте-потомке будут действовать два одноименных метода, имеющие разную алгоритмическую основу и, следовательно ,придающие объектам разные свойства.
Принцип наследования - первый принцип ООП. Он реализуется через механизмы наследования и виртуальных классов, которые позволяют строить новые производные классы на основе ранее объявленных базовых классов. Принцип наследования уподобил процесс программирования процессу сборки сложных устройств и механизмов из наборов стандартных узлов и деталей.
Принцип инкапсуляции - второй принцип ООП, делает процесс программирования ещё более похожим на работу в сборочном цехе. Хорошо спроектированный класс имеет открытый интерфейс для взаимодействия с "внешним миром" и защищённую от случайного воздействия "внутреннюю" часть. Такой класс подобен автомобильному двигателю. В момент его установки в кузове или на раме при сборке автомобиля, он уже полностью собран. И не нужно сверлить в корпусе двигателя дополнительные отверстия для подсоединения трубопроводов системы охлаждения, подачи топлива и машинного масла. Разделение класса на скрытую внутреннюю часть и открытый интерфейс обеспечивается системой управления доступом к компонентам класса и дружественными функциями.
Принцип полиморфизма (полиморфизм означает буквально многообразие форм) - ещё один принцип ООП. Он заключается в способности объекта во время выполнения программы динамически изменять свои свойства. Возможность настройки указателя на объект базового класса на объекты производных классов и механизм виртуальных функций лежат в основе этого принципа объектно-ориентированного программирования.
Структура класса.
Класс – тип, который в своем составе объединяет данные и подпрограммы(процедуры и функции)
Ранее данные и подпрограммы существовали отдельно. Теперь в рамках класса – обьединены.
Для создания обьектов используют конструктора, для уничтожения – диструкторы.
Метод – любая подпрограмма, входящая в состав класса. Конструктор и деструктор тоже методы.
Методы бывают: процедурные и функциональные.
В объявлении класса существуют данные, которые называются полями.
Class1 = Class(<класс предка>); если это класс- родитель, то <> пропускается
//Public(private, protected,published)
<поля>
<методы>
<свойства>
End;
Object1:class1; // объект типа class1