ВУЗ:
Составители:
Рубрика:
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; И спользова н ие свойст в, в отличие от н епосред ст вен н ого использо- ва н ия полей, позволя ет осу щест вля ть ра зличн ые д ополн ит ельн ые д ей- ст вия : проверку ввод им ых зн а чен ий н а прин а д леж н ость к за д а н н ом у д иа па зон у , выд а чу сооб щен ий н а э кра н , изм ен ен ие вн еш н его вид а об ъ- ект а н а э кра н е и т.д .
Страницы
- « первая
- ‹ предыдущая
- …
- 6
- 7
- 8
- 9
- 10
- …
- следующая ›
- последняя »