Учебный курс Программирование на Delphi. Модуль 1

Материал из Wiki Mininuniver
Перейти к навигацииПерейти к поиску

Учебный курс Программирование на 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

Литература

  1. Архангельский. Программирование на Delphi 6. – М: БИНОМ, 2002
  2. Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003
  3. Иванова Г., Ничушкина Т., Пугачев Е. Объектно-ориентированное программирование.– М.: Издательство МГТУ им. Баумана, 2001
  4. Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005.


Ссылки