Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпора по инфе.doc
Скачиваний:
0
Добавлен:
26.08.2019
Размер:
131.07 Кб
Скачать

Определение объектов.

Основным понятием ООП и элементом программы является объект, сочетающий в себе как совокупность данных, так и действий над ними. Тип-объект в Turbo Pascal напоминает тип-запись, однако вместо зарезервированного слова record используется слово object, а кроме полей, представляющих данные, в нем перечислены и заголовки подпрограмм, называемых методами. При задании такого типа после зарезервированного слова object перечисляются все поля объекта и заголовки методов, после чего пишется слово end.

Так, в рассматриваемом примере используется тип tConnection (связь элементов):

type

tConnection = object

PredElem: Pointer;

NextElem: Pointer;

procedure PutPredElemCPredEl: Pointer);

procedure PutNextElem(NextEl: Pointer);

function GetPredElem: Pointer;

function GetNextElem: Pointer

end;

В этом типе PredElem и NextElem - указатели на предыдущий и последующий элементы в структуре (если соответствующего элемента нет, указатель имеет значение nil). Используются указатели типа Pointer, т. к. элементы могут быть различными: они могут быть и элементами строки, и строками. Далее идут заголовки двух процедур и двух функций, позволяющих либо задавать, либо получать значения указателей объекта.

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

procedure tConnection.PutPredElem;

begin

PredElem:=PredEl

end;

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

Некоторые объекты программы, особенно находящиеся в начале иерархического дерева, могут и не соответствовать каким-либо реальным объектам. Так, например, объекты типов tConnection (связь), tStructure (структура) и tOperation (операция) не имеют какого либо физического воплощения - они указывают лишь на некоторые свойства других, реальных объектов, таких, как строки, элементы строк. Однако выделение этих общих свойств в отдельные объекты бывает удобно, т. к. позволяет затем не повторять их многократно при описании уже реальных объектов. Такие объекты называются абстрактными, и переменных таких типов в программе, как правило, не бывает.

9