Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Инкапсуляцией называется объединение каких-либо относительно независимых элементов в единое целое. В стандартном 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;





Дата публикования: 2014-11-29; Прочитано: 314 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...