Программирование в среде Delphi. Часть 2. Создание оконных приложений. Садовская О.Б. - 8 стр.

UptoLike

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

8
Свойства
Свойства внешне напоминают поля класса , но на самом деле
представляют собой механизм , регулирующий доступ к полям. Как
правило, свойство связано с некоторым полем класса и указывает те
методы класса , которые должны быть использованы при чтении из
этого поля или при записи в него. Метод доступа для чтения должен
быть функцией без параметров, которая возвращает значение того же
самого типа , что и свойство. Имя функции, предназначенной для чте-
ния , принято начинать с приставки Get. Метод , используемый для за -
писи, должен быть процедурой, имеющей один параметр. Этот пара -
метр должен быть того же типа , что и свойство. Имя процедуры ,
предназначенной для записи, принято начинать с приставки Set.
Для объявления свойства используются зарезервированные слова
property, read, write. Слова read и write обозначают начало разделов,
содержащих имена методов, предназначенных для чтения и записи
соответственно. Например:
type tStudent = class
fAge : integer;
function GetAge : integer;
procedure SetAge(value : integer);
property Age : integer read GetAge write SetAge;
end;
Здесь Age свойство, связанное с полем fAge. GetAge и SetAge
методы, предназначенные соответственно для чтения и записи в по-
ле fAge.
Для обращения к свойству в тексте программы необходимо ис-
пользовать составные имена, состоящие из имени объекта и имени
свойства , разделённые точкой. Например:
var GoodStudent : tStudent;
OwnAge: integer;
begin
GoodStudent:=tStudent.Create;
GoodStudent.Age:=19;
…………………………….
OwnAge:=GoodStudent.Age;
…………………………….
GoodStudent.Free;
end;
Использование свойств, в отличие от непосредственного использо -
вания полей, позволяет осуществлять различные дополнительные дей-
ствия : проверку вводимых значений на принадлежность к заданному
диапазону, выдачу сообщений на экран, изменение внешнего вида объ-
екта на экране и т.д .
                                            8
                                      Св ойст в а
      Свойст ва вн еш н е н а пом ин а ю т поля кла сса , н о н а са м ом д еле
пред ста вля ю т соб ой м еха н изм , регу лиру ю щий д ост у п к поля м . К а к
пра вило, свойст во свя за н о с н екоторым полем кла сса и у ка зыва ет т е
м ет од ы кла сса , кот орые д олж н ы б ыт ь использова н ы при чт ен ии из
э т ого поля или при за писи в н его. М ет од д ост у па д ля чтен ия д олж ен
б ыт ь ф у н кцией б ез па ра м етров, кот ора я возвра ща ет зн а чен ие т ого ж е
са м ого т ипа , чт о и свойст во. И м я ф у н кции, пред н а зн а чен н ой д ля чт е-
н ия , прин я т о н а чин а т ь с приста вки Get. М етод , использу ем ый д ля за -
писи, д олж ен б ыт ь процед у рой, им ею щей од ин па ра м ет р. Э т от па ра -
м ет р д олж ен б ыт ь т ого ж е т ипа , чт о и свойст во. И м я процед у ры,
пред н а зн а чен н ой д ля за писи, прин я то н а чин а т ь с приста вки Set.
      Д ля об ъя влен ия свойст ва использу ю т ся за резервирова н н ые слова
property, read, write. Слова read и write об озн а ча ю т н а ча ло ра зд елов,
сод ерж а щих им ен а м ет од ов, пред н а зн а чен н ых д ля чт ен ия и за писи
соот вет ст вен н о. Н а прим ер:
      type tStudent = class
                fAge : integer;
                function GetAge : integer;
                procedure SetAge(value : integer);
                property Age : integer read GetAge write SetAge;
                end;
      З д есь Age – свойст во, свя за н н ое с полем fAge. GetAge и SetAge
– м ет од ы, пред н а зн а чен н ые соот вет ст вен н о д ля чт ен ия и за писи в по-
ле fAge.
      Д ля об ра щен ия к свойст ву в т екст е програ м м ы н еоб ход им о ис-
пользова т ь сост а вн ые им ен а , состоя щие из им ен и об ъекта и им ен и
свойст ва , ра зд елён н ые точкой. Н а прим ер:
      var GoodStudent : tStudent;
             OwnAge: integer;
      begin
      GoodStudent:=tStudent.Create;
      GoodStudent.Age:=19;
      … … … … … … … … … … … … .
      OwnAge:=GoodStudent.Age;
      … … … … … … … … … … … … .
      GoodStudent.Free;
      end;
      И спользова н ие свойст в, в отличие от н епосред ст вен н ого использо-
ва н ия полей, позволя ет осу щест вля ть ра зличн ые д ополн ит ельн ые д ей-
ст вия : проверку ввод им ых зн а чен ий н а прин а д леж н ость к за д а н н ом у
д иа па зон у , выд а чу сооб щен ий н а э кра н , изм ен ен ие вн еш н его вид а об ъ-
ект а н а э  кра н е и т.д .