Лекция: Инкапсуляция. Объект. Поля данных и методы объекта

Инкапсуляцией называется объединение каких-либо относительно независимых элементов в единое целое. В стандартном PASCAL существует тип record — «Запись»:

type

tLocation=

record {поля записи}

X,Y:Integer

end;

var Location1,Location2:tLocation;

a:integer;

Поля записи — самостоятельные переменные. Доступ к ним — через квалификацию с помощью точки (составное имя с разделительной точкой). К полям можно обращаться по отдельности. Например, присвоить переменной a значение поля X:

a:=Location1.X

Либо изменить значение поля Y:

Location1.Y:=212

А можно действовать с инкапсулированными в запись полями как с единым целым:

Location2:=Location1

при этом полю X записи Location1 будет присвоено значение X записи Location2, и, аналогично, полю Y в Location1 — значение Y записи Location2.

Развитием идеи объединения (инкапсуляции) различных полей стали объекты.

Пример:

объект:

точка на экране tDot;

ее данные:

координаты X и Y — целые переменные;

светится или нет на экране active — булевская переменная;

ее методы действия:

«нарисовать»: Show;

«скрыть»: Hide;

«передвинуть по X и Y на величины dX и dY»: Move(dX,dY)

«передвинуть в точку с координатами X и Y»: MoveTo(X,Y)

Использование в программе:

var aDot:tDot;

...

aDot.X:=10; {координате X точки Dot присвоить значение 10}

aDot.Y:=20;

aDot.Show; {вызвать метод показа точки Show; говорят: «точка себя рисует»}

Описание методов:

procedure tDot.Show;

begin

… {рисование точки текущим цветом пера}

active:=true;

end;

procedure tDot.Hide;

begin

… {рисование точки цветом фона}

active:=false;

end;

procedure tDot.Move(dX,dY:Integer);

begin

Hide;

X:=X+dX;

Y:=Y+dY;

Show;

end;

 

еще рефераты
Еще работы по информатике