Основы программирования. Динамические массивы. Списки. Ассоциативные массивы. Деревья. Хеш-таблицы - 9 стр.

UptoLike

Составители: 

11
В Delphi Pascal можно определять так называемые свойства классов. Свойст-
ва являются расширениями полей классов. При использовании они имеют тот же
синтаксис, что и поля, однако не связаны с конкретной областью памяти. Вместо
этого, свойства имеют специальные методы доступа, обеспечивая возможность
доступа к приватным полям класса и позволяющие при их чтении или
записи
производить дополнительные действия.
Например, пусть имеется класс MyClass с закрытым полем p типа
integer. Для доступа к нему на чтение опишем метод-функцию без параметров,
возвращающую тот же тип, что и тип поля:
function MyClass.GetP: integer;
begin
Некоторые дополнительные действия
Result:=p;
end;
Для доступа к нему на запись опишем метод-процедуру с
одним параметром того
же типа, что и тип поля:
procedure MyClass.SetP(value: integer);
begin
Проверка допустимости значения value
if p<>value then
begin
p:=value;
Некоторые дополнительные действия
end;
end;
Назовем свойство, связанное с полем p, именем MyProp. Оно описывается в
теле класса следующим образом:
type
MyClass = class
private
p: integer;
function GetP: integer;
procedure SetP(value: integer);
public
property MyProp: integer read GetP write SetP;
end;
Такая запись говорит о том, что при доступе к свойству MyProp на чтение вызы-
вается метод GetP, а при доступе на записьметод SetP. Использование
свойств идентично использованию полей классов:
var A: MyClass;