Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
type pozicia=object {начало описания типа pozicia}
x, y: integer; {координаты позиции}
Procedure Init(XN,YN:integer); {заголовки
блока порождения объекта}
Procedure Locate(Var XL,YL:integer);
{заг-ок блока получения координат позиции}
End;
procedure Pozicia.Init; {можно не писать параметры}
begin {поля x, y объекта глобальны для метода}
x:=XN;
y:=YN
end;
Procedure Pozicia.Locate;
Begin
xL:=X;
yL:=Y
End;
Var
d,m,t:integer;
p: pozicia; {описание переменной-объекта}
xx,yy:array [1..1000] of integer;
begin {основная программа}
d:=detect;
Randomize; {инициируем графический режим и генератор
initGraph (d, m, `c:\bp\bgi`); случайных чисел}
clear device; {очистка экрана}
for i:=1 to 1000
Do begin
P.Init(Random(GetMax(X)),Random (GetMax(Y));
{порождение объекта}
P.Locate (xx[i], yy[i]); {запоминаем её
координаты в массиве}
End;
Cleardevice;
End.
Блоки-методы размещаются в произвольном порядке. Совпадение их имён, если методы принадлежат разным типам, не запрещено, следовательно, в заголовках методов их имена снабжаются префиксом – именем типа. Например: pozicia.init, krug.init.
Обращение к методу нужно начинать с префикса – имени действующего объекта. Например: P.Locate (параметры).
В обоих случаях разделителем служит (.).
Допустимо обращение с полями объекта как с полями записи: P.z, P.y, но нежелательно.
Объекты не запрещается использовать в блоках, не являющихся методами. Но такое применение должно быть исключением, так как противоречит идее объектов.
Доступ к полям объектов можно принудительно ограничивать. Чтобы поля были доступны лишь методам данного модуля, в объектном типе до описания группы полей записать Private, а после неё – Public. Это делают, чтобы предупредить ошибочные действия с объектными данными пользователя библиотеки объектов.
Задание для самостоятельной работы:
1. Описать тип объектов – окружностей с параметрами: координаты центра, радиус, цвет, и методами:
а) порождение окружности;
б) изменение её цвета;
в) изменение её радиуса.
2. Описать массив из 50 объектов и разработать программу, порождающую 50 разноцветных окружностей:
а) со случайным расположением;
б) «пульсирующих» – меняющих цвет и радиус.
Наследование позволяет создавать новые объекты, изменяя или дополняя свойства прежних.
Этот принцип относится только к классам объектов.
Наследование означает, что каждый объект может иметь наследников, каждый из которых будет обладать всеми полями и методами своего предка. Кроме того, как правило, классы-наследники совместимы по типу со своими предками (к сожалению, это справедливо не для всех ОО языков).
Наследование бывает двух видов:
1) одиночное, когда каждый класс имеет одного и только одного предка;
2) множественное, когда каждый класс может иметь любое количество предков.
Множественное наследование обладает более мощными возможностями: в одном классе-наследнике объединяются свойства (поля и методы) множества различных классов. К примеру, один из предков может рисовать себя, а другой - производить вычисления, представители их наследника смогут делать и то, и другое.
Такие простые программы, как рассмотренный выше пример, мало значимы, но они позволяют избежать дублирования элементов описания, их называют родительскими.
Родительские (предки) – тип объектов, которые используются как носители общих свойств и методов для семейства типов – потомков, позволяя избежать дублирования элементов описания.
Объект может не использоваться самостоятельно, а служить основой для начинающегося с него дерева объектов. Такие объекты называются абстрактными. Они объединяют в себе некоторые общие для всех своих потомков поля и методы.
Абстрактные методы – методы, которые не содержат исполняемых операторов и служат заготовками для аналогичных методов в объектах – потомках. Абстрактные методы должны перекрываться в потомках.
Дата публикования: 2014-10-25; Прочитано: 283 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!