Учебный курс Программирование на Delphi. Модуль 1: различия между версиями
Строка 99: | Строка 99: | ||
*[http://ru.wikibooks.org/wiki/Объектно-ориентированное_программирование Викиучебник «Объектно-ориентированное_программирование»] | *[http://ru.wikibooks.org/wiki/Объектно-ориентированное_программирование Викиучебник «Объектно-ориентированное_программирование»] | ||
− | [[Категория: Учебный курс Программирование на Delphi]] | + | [[Категория: Учебный курс Программирование на Delphi]] |
Текущая версия на 06:48, 15 марта 1997
Учебный курс Программирование на Delphi. Модуль 1
Содержание
Понятие ООП
Исторически сложилось так, что программирование возникло и развивалось как процедурное программирование, которое предполагает, что основой программы является алгоритм, процедура обработки данных.
Объектно-ориентированное программирование (ООП) — это методика разработки программ, в основе которой лежит понятие объект. Объект — это некоторая структура, соответствующая объекту реального мира, его поведению. Задача, решаемая с использованием методики ООП, описывается в терминах объектов и операций над ними, а программа при таком подходе представляет собой набор объектов и связей между ними.
Объект похож на тип запись, но включает в себя не только поля данных, но и подпрограммы (т.е. процедуры и функции) для обработки этих данных. Такие подпрограммы называются методами.
Инкапсуляция – это объединение в одном типе всех полей объекта и методов. Инкапсуляция позволяет в максимальной степени изолировать объект от внешнего окружения. Она существенно повышает надёжность разрабатываемых программ, т.к. локализованные в объекте алгоритмы обмениваются с программой сравнительно небольшими объемами данных, причём количество и тип этих данных тщательно контролируется. Другим немаловажным следствием инкапсуляции является легкость обмена объектами, переноса их из одной программы в другую.
Свойства – это переменные, влияющие на визуальное представление объекта и возможно, его поведение.
Методы – это действия, которые объект может выполнить по требованию других объектов или пользователя.
Пример:
Объект: окружность
Свойства: координаты, цвет
Методы: изменить, переместить
Объектно-ориентированное программирование по своей сути – это создание приложений из объектов, подобно тому, как из блоков и различных деталей строят дома.
Среди методов объектов важнейшими являются методы – обработчики событий. Событие: щелчок кнопкой мыши на объекте, нажатие определённой клавиши.
Наследование – это возможность использовать созданный объект для построения иерархии порожденных объектов. Причем, каждый "потомок" автоматически наследует от "родителя" все поля и методы, и также может дополнять их новыми и заменять (перекрывать) методы "родителя". Это свойство служит для сокращения избыточности кода. Если объект является "потомком" какого-то объекта, то имя "родителя" указывается при описании типа в круглых скобках после object. Принцип наследования решает проблему модификации свойств объекта и придаёт ООП в целом исключительную гибкость.
Наследование – определение нового объекта с использованием свойств ранее объявленных объектов, дополняя или изменяя их.
Полиморфизм – это возможность использовать одноименный метод для различных объектовых типов.
В рамках ООП поведенческие свойства объекта определяются набором входящих в него методов. Изменяя алгоритм того или иного метода в потомках объекта, программист может придавать этим потомкам отсутствующие у "родителя" специфические свойства. Для изменения метода необходимо перекрыть его в потомке, т.е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте-родителе и объекте-потомке будут действовать два одноименных метода, имеющих разную алгоритмическую основу и, следовательно, придающие объектам разные свойства. Это и называется полиморфизмом объектов.
Классы и объекты
Классический язык Pascal позволяет программисту определять свои собственные сложные типы данных — записи (records). Язык Delphi, поддерживая концепцию объектно-ориентированного программирования, дает возможность определять классы. Класс — это сложная структура, включающая, помимо описания данных, описание процедур и функций, которые могут быть выполнены над представителем класса — объектом.
Вот пример объявления простого класса:
TPerson = class
Private
fname: string[15]; faddress: string[35];
public
procedure Show;
end;
Данные класса называются полями, процедуры и функции — методами.
В приведенном примере TPerson — это имя класса, fname и faddress - имена полей, show — имя метода.
Примечание
Согласно принятому в Delphi соглашению, имена полей должны начинаться с буквы f (от слова field — поле).
Описание класса помещают в программе в раздел описания типов (type).
Объекты как представители класса объявляются в программе в разделе var, например:
Var
student: TPerson; professor: TPerson;
Помимо объявления элементов класса (полей, методов, свойств) описание класса, как правило, содержит директивы protected (защищенный) и private (закрытый), которые устанавливают степень видимости элементов класса в программе.
Элементы класса, объявленные в секции protected, доступны только в порожденных от него классах. Область видимости элементов класса этой секции не ограничивается модулем, в котором находится описание класса. Обычно в секцию protected помещают описание методов класса.
Элементы класса, объявленные в секции private, видимы только внутри модуля. Эти элементы не доступны за пределами модуля, даже в производных классах. Обычно в секцию private помещают описание полей класса, а методы, обеспечивающие доступ к этим полям, помещают в секцию protected.
Более подробно познакомиться с понятием ООП вы можете по указанным в модуле источникам.
Задание
Постройте карту знаний «Основные понятия ООП». Для построения карт знаний используйте социальный сервис Bubbl.us или программу FreeMind
Литература
- Архангельский. Программирование на Delphi 6. – М: БИНОМ, 2002
- Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003
- Иванова Г., Ничушкина Т., Пугачев Е. Объектно-ориентированное программирование.– М.: Издательство МГТУ им. Баумана, 2001
- Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005.