ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

2.3. Особенности объектно-ориентированного
программирования

Язык Object Pascal является объектно-ориентированным расширением языка Pascal и реализует концепцию объектно-ориентированного программирования.

Это означает, что создаваемое приложение состоит из объектов, которые взаимодействуют между собой. Каждый объект имеет свои свойства, то есть характеристики (атрибуты) этого объекта, методы, определяющие поведение этого объекта, и события, на которые реагирует объект.


Классы и объекты

В языке Object Pascal классы являются специальными типами данных и используются для описания объектов. Соответственно объект, имеющий тип какого-либо класса, является экземпляром этого класса или переменной этого типа.

Класс представляет собой особый тип записи, имеющий в своём составе такие элементы, как поля, свойства и методы.

Поля класса аналогичны полям записи и служат для хранения информации об объекте.

Методами называются процедуры и функции, предназначенные для обработки полей.

Свойства занимают промежуточное положение между полями и методами. С одной стороны, свойства можно использовать как поля, например, присваивая им значения с помощью оператора присваивания; с другой стороны, внутри класса доступ к значениям свойств выполняется методами класса.


Описание класса имеет следующую структуру:

Type <Имя класса>= class (<Имя класса-родителя>)
private
<Частные описания>
Protected
<Защищённые описания>
Public
<Общедоступные описания>
Published
<Опубликованные описания>
end;


В приведённой структуре описаниями являются объявления свойств, методов и событий.


Пример. Описание класса.

Type
TcolorCircle=class(Tcircle);
FLeft,
FTop
FRight
FBotton: Integer;
Color: TColor;
End;


Здесь класс TcolorCircle создаётся на основе родительского класса Tcircle.

По сравнению с родительским, новый класс дополнительно содержит четыре поля типа Integer и одно поле типа TColor.

Если в качестве родительского используется класс Tobject, который является базовым классом для всех классов, то его имя после слова class можно не указывать:

Type TNewClass=class

Для различных элементов класса можно устанавливать разные права доступа (видимости), для чего в описании класса используются отдельные разделы, обозначенные специальными спецификаторами видимости.

Разделы private и protected содержат защищённые описания, доступные внутри модуля, в котором они находятся. Описания из раздела protected, кроме того, доступны для порождённых классов за пределами названного модуля.

Раздел public содержит общедоступные описания, которые видимы в любом месте программы, где доступен класс.

Раздел published содержит опубликованные описания.

Объекты как экземпляры класса объявляются в программе в разделе var как обычные переменные, например,

Var
CCircle1: TColorCircle;
CircleA: TCircle;

Как и в случае записей, для обращения к конкретному элементу объекта (полю, свойству или методу) указывается имя объекта и имя элемента, разделённые точкой, т. е. имя элемента является составным.


Пример. Обращения к полям объекта

Var
CCircle1: TColorCircle;
Begin
….
CCircle1. Fleft:=5;
CCircle1. Ftop:=1;

End;


Поля [3]

Поле класса представляет собой данные, содержащиеся в классе. Поле описывается как обычная переменная и может принадлежать к любому типу.


Пример. Описание полей

Type TNewclass=class(TObject)
Private
Fcode: integer;
FSign: char;
FNote: string;
End;


TNewclass – новый класс создаётся на основе базового класса TObject и получает в дополнение три новых поля Fcode, FSign, FNote. Префикс F берется от слова Field (поле). При создании новых классов класс-потомок наследует все поля родителя. При этом удаление или переопределение этих полей невозможно.

При создании новых классов класс-потомок наследует все поля родителя, изменение значений полей выполняется с помощью методов и свойств объекта.


Свойства [3]

Свойства реализуют механизм доступа к полям. Каждому свойству соответствует поле, содержащее значение свойства, например, свойства, определяющие внешний вид кнопки:

color – её цвет, left и top – координаты левого верхнего угла.


Событие [3]

Это либо воздействие пользователя на какой-либо объект (нажатие мыши) либо изменение размеров объекта.

Визуальные компоненты способны генерировать и обрабатывать достаточно большое число событий различных видов. К наиболее общим группам событий можно отнести:

  • выбор управляющего элемента;

  • перемещение указателя мыши;

  • вращение колеса мыши;

  • нажатие клавиш клавиатуры;

  • получение и потеря управляющим элементом фокуса ввода;

  • перемещение объектов методом drag and drop.

В языке Object Pascal, который лежит в основе Delphi, события также являются свойствами. При выборе управляющего элемента возникает событие Onclick, называемое событием нажатия, которое возникает при щелчке мышью на компоненте.

При разработке приложений событие Onclick является одним из наиболее часто используемых.


Пример. Процедура обработки события выбора элемента Edit1.

Procedure TForm1.Edit1Click(Sender: TObject);
Begin
Edit1.Color :=Random($FFFFFF);
End;

При щелчке мышью в поле редактирования Edit1 случайным образом изменяется цвет его фона.

Для некоторых компонентов событие Onclick может возникать и при других способах нажатия на управляющий элемент, находящийся в фокусе ввода, например, для компонента Button – с помощью клавиш <Пробел > или <Enter>.

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011