Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Инкапсуляцией называется объединение каких-либо относительно независимых элементов в единое целое. В стандартном 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!