Свойства
Свойства - это специальный механизм классов, регулирующий доступ к полям. Свойства объявляются с помощью зарезервированных СЛОВ property, read И write (слова read И write считаются зарезервированньши только в контексте объявления свойства). Обычно свойство связано с некоторым полем и указывает те методы класса, которые должны использоваться при записи в это поле или при чтении из него. Например:
type TaClass = class IntField: Integer; Function GetField: Integer; Procedure SetField (Value: Integers); Property IntegerValue: Integer read GetField write SetField; end ;
В контексте программы свойство ведет себя как обычное поле. Например, мы могли бы написать такие операторы:
var aClass: TaClass; Value: Integer; begin aClass := TaClass.Create; { Обязательное обращение к конструктору перед обращением к полю или свойству!} aClass.IntegerValue := 0; Value := aClass.IntegerValue; aClass.Destroy; // Удаление ненужного объекта end;
Более того, возможен и такой оператор присваивания:
aClass.IntField := NewValue;
Разница между этим оператором и оператором
aClass.IntegerValue := NewValue;
заключается в том, что при обращении к свойству автоматически подключается метод setFieid, в котором могут реализовываться специфичные действия. Вспомним использовавшийся нами в учебной программе оператор
IbOutput.Caption := 'Строка';
Свойство Caption компонента Label вызывает метод setText, который не только запоминает строку символов во внутренней переменной, но и осуществляет прорисовку метки с новым текстом.
Если нет необходимости в специальных действиях при чтении или записи свойства, вместо имени соответствующего метода можно указывать имя поля:
type TaClass = class IntFiled: Integer; Procedure SetFieid (Value: Integers; Property IntegerValue: Integer read IntFiled write SetFieid; end;
Если необходимо, чтобы свойство было доступно только для чтения или только для записи, следует опустить соответственно часть write или read. Вообще говоря, свойство может и не связываться с полем. Фактически оно описывает один или два метода, которые осуществляют некоторые действия над данными того же типа, что и свойство.
1 2 3
8 8 8
|