- •2. Ввод данных из окна ввода (диалоговое окно)
- •3. Вывод данных в окно сообщения с помощью процедуры ShowMessage и в поле диалогового окна.
- •5. Окна среды Delphi. Панель инструментов, палитра компонентов. Компоненты Edit, Label, их свойства.
- •6. Основные события Windows. Процедура обработки события.
- •7. Проект Delphi. Файл проекта. Добавление новых форм. Сохранение проекта.
- •8. Компиляция приложения. Ошибки времени компиляции. Подсказки (Hints) и предупреждения (Warnings) компилятора.
- •9. Запуск приложения из среды программирования и из Windows. Ошибки времени выполнения приложения. Создание и изменение значка приложения в ImageEditor.
- •10. Компоненты Button, BitBtn, их свойства
- •11. Консольное приложение. Инструкции read, write.
- •12. Символы, их коды. Сравнение символов. Совместимость типов Char и String.
- •13. Компонент Memo, его свойства. Ввод одномерного массива с помощью компонента Memo.
- •14. Компонент ListBox, его свойства. Компонент ComboBox, его свойства.
- •15. Компонент Image, его свойства. Компоненты Bevel, Shape, их свойства.
- •16. Методы класса tStrings
- •17. Обработка исключительных ситуаций.
- •18. Многомерные массивы. Компонент StringGrid, его свойства. Ошибки при использовании массивов.
- •25. Концепция объектно-ориентированного программирования. Класс. Объект. Метод. Динамическое создание компонента на форме.
- •26-27. Инкапсуляция и свойства объекта. Наследование. Директивы Protected и Private.
- •28. Полиморфизм и виртуальные методы
- •Абстрактные виртуальные методы
- •Динамические методы
- •Методы обработки сообщений
- •48. Логические связки условий, итоговые вычисления, группировка, сортировка.
- •Вывод результатов запроса
26-27. Инкапсуляция и свойства объекта. Наследование. Директивы Protected и Private.
Инкапсуляция (Encapsulation) — механизм, который объединяет данные и методы их обработки, а также защищает и то, и другое от внешнего вмешательства или неправильного использования. В ООП методы и данные могут быть объединены вместе. В этом случае говорят, что создаётся "чёрный ящик".
Инкапсуляция в языке Delphi применяется при создании классов, т.к. при создании класса мы можем определить данные, принадлежащие ему, и методы для обработки их. Начнём изучение инкапсуляции со свойств объекта. Ограничение доступа к полям объекта реализуется с помощью свойств объекта.
Свойство объекта — характеристика объекта, которая определяется полем, сохраняющим значение свойства, и двумя методами, обеспечивающими доступ к полю свойства.
Свойство объекта — специальный механизм классов, регулирующий доступ к полям.
Метод записи свойства(метод установки значения свойства) — write, а метод чтение свойства(метод получение значения свойства) — read.
Перед тем как вы записываете свойства объекта нужно обязательно объявить методы, но не надо объявлять сам объект, т.к. описание объекта включает в себя создания объекта. Смысл существования свойства заключается в том, что мы можем создать объект и например запретить запись или чтение его свойств.
Директивы private, public, protected — директивы, устанавливающие степень видимости элементов в программе.
Элементы класса, объявленные в секции private, не доступны вне модуля программы и класса-родителям (Наследование). Обычно в эту секцию помещают поля (атрибуты) класса.
Насле́дование — механизм объектно-ориентированного программирования (наряду с инкапсуляцией, полиморфизмом и абстракцией), позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.
Другими словами, класс-наследник реализует спецификацию уже существующего класса (базовый класс). Это позволяет обращаться с объектами класса-наследника точно так же, как с объектами базового класса
28. Полиморфизм и виртуальные методы
Вызов виртуального метода осуществляется следующим образом:
Через объектную переменную выполняется обращение к занятому объектом блоку памяти;
Далее из этого блока извлекается адрес таблицы виртуальных методов (он записан в четырех первых байтах);
На основании порядкового номера виртуального метода извлекается адрес соответствующей подпрограммы;
Вызывается код, находящийся по этому адресу.
Абстрактные виртуальные методы
При построении иерархии классов часто возникает ситуация, когда работа виртуального метода в базовом классе не известна и наполняется содержанием только в наследниках. Так случилось, например, с методом ParseLine, тело которого в классе TTextReader объявлено пустым. Конечно, тело метода всегда можно сделать пустым или почти пустым (так мы и поступили), но лучше воспользоваться директивой abstract. Директива abstract записывается после слова virtual и исключает необходимость написания кода виртуального метода для данного класса. Такой метод называется абстрактным, т.е. подразумевает логическое действие, а не конкретный способ его реализации. Абстрактные виртуальные методы часто используются при создании классов-полуфабрикатов. Свою реализацию такие методы получают в законченных наследниках.