logo
Программирование в среде Delphy / Программирование в среде Delphi

17.3. Свойства (Property) и инкапсуляция

Объектно–ориентированное программирование (ООП) основано на трех принципах – инкапсуляция, наследование и полиморфизм. Классическое ООП утверждает, что чтение и обновление полей должно производиться только специальными методами и не допускается прямое обращение к полям класса. Это правило и называется инкапсуляцией, а такие поля – свойствами. Свойство определяется полем и двумя методами, которые осуществляют чтение и запись заданных значений в поле. Пример определения свойства:

Type TmyObject=class(Tobject)

Privete

FmyField:String;

Protected

Procedure SetMyField(Value:String);

Published

PropertyMyProp:StringReadFmyField

WriteSetMyField

Default’Начальное значение’;

End;

Здесь в классе TmyObject определено свойство MyProp строкового типа. В качестве метода чтения выступает само значение строки, а запись осуществляется методом SetMyField. Само поле FmyField определено в области Privete, и поэтому к нему нет прямого доступа из других модулей. Метод чтения этого поля находится в защищенной области, а свойство MyProp – в области публикаций, и оно доступно инспектору объектов во время проектирования программы.