Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Property-властивості

Begin

Interface

Туре

АВСЗ = class private

a, b, с: Double; (Всі властивості мають вузьку область

видимості)

public

Procedure SetA(NewA: Double);

(Всі методи мають широку область

видимості)

Procedure SetB(NewB: Double);

Function GetC: Double;

end;

Implementation

Procedure ABC3.SetA(NewA: Double); (Опис метода SetA класу АВС3)

Begin

а:= NewA;

с:= а * b; end;

Procedure АВСЗ .SetB(NewB:Double); (Опис метода SetB класу АВС3)

Begin

b:= NewB; c:= a * b; end;

Function АВСЗ.GetC: Double; (Опис метода GetC класу ABC3)

Result:= c; Просто повертаємо значення C)

end; end.

 

Властивості property аналогічні властивостям об'єкта в сенсі їх використання. Однак внутрішній механізм їх роботи набагато складніший. Такі властивості не є простим відображенням пам'яті, доступний для читання і зміни, а мають на увазі виклик методів об'єкта. Детальніше на властивостях property ми зупинимося при розгляді створення компонентів, а поки просто наведемо скорочений формат опису таких властивостей з короткими поясненнями. Отже, опис властивостей property у найпростішому вигляді виглядає таким чином:

property<Ім’я властивості>:<Тип>read < Функція зчитування значення >

write <Процедура установки значення>;

 

Коли викликає підпрограма звертається до властивості property для отримання його значення, замість конкретного значення повертається результат функції, зазначеної на ім'я після модифікатора read. Аналогічно проводиться установка значення властивості - замість прямого запису значення викликається процедура, зазначена після модифікатора write. Відповідно, дана процедура повинна приймати один параметр, причому його тип повинен бути таким же, як тип самого властивості.

Модифікатори read і write можуть не бути присутнім в описі property-властивості одночасно. Якщо для властивості задана функція читання, але не задана процедура запису, то така властивість може бути використано тільки для отримання значення. Були задана процедура встановлення значення, але не задана функція читання, то property-властивість можна використовувати тільки в лівій частині оператора привласнення. У розглянутому нами прикладі властивості а і b повинні бути доступні зухвалому фрагменту і для читання і для запису, тоді як властивість с може бути доступно тільки для читання. Приклад опису та використання property-властивості для підтримки коректності даних приведений в лістингу 2.8.

Лістинг 5.8. Приклад опису та використання roperty-властивосты

Unit Properties; (Заголовок модуля)

Interface

Туре

ABC4 = class private

fa, Bo, fc: Double; (Всі властивості мають вузьку

область видимості)

protected (Всі методи мають область

видимості protected;

Procedure SetA(NewA: Double); {Процедура установки

значення властивості fa)

Procedure SetB(NewB: Double);

(Процедура установки значення властивості fb}

Function GetA: Double; (Функція отримання значення

властивості fa)

Function GetB: Double; (Функція отримання значення

властивості fb)

Function GetC: Double; (Функція отримання значення

властивості fc)

published •Розділ опису property-властивостей, доступних викликаю чому фрагменту програми)

property A: Double read GetA write SetA;

(Опис property-властивості А, для якого задана функція читання GetA та процедура установки SetA. Властивість буде доступна викликаю чому фрагменту програми для читання та запису)

property В: Double read GetB write SetB;

{Опис property- властивості В, для якого задана функція читання GetB та процедура установки SetB. Властивість буде доступна викликаю чому фрагменту програми для читання та запису)

property С: Double read GetC;

(Опис property- властивості С, для якого задана функція читання GetС та не задана процедура установки. Властивість буде доступна викликаючому фрагменту програми виключно для читання)

end;

Implementation

Procedure АВС4.SetA(NewA: Double); (Опис метода SetA)

Begin

fa:= NewA; (Занесення нового значення в private-властивість fa)

fc:= fa * fb; (Перерахунок добутку та занесення результату у властивість fc)

end;

Procedure АВС4.SetB(NewB: Double); (Опис метода SetB)

Begin

fb:= NewB; (Занесення нового значення в private-властивість fb)

fc:= fa * fb; (Перерахунок добутку та занесення результату у властивість fc)

end;

Function ABC4.GetA: Double; (Опис метода GetA)

Begin

Result:= fa; (Результата функції - значення private - властивості fa)

end;

Function ABC4.GetB: Double; (Опис метода GetB)

Begin

Result:= fb; (Результата функції - значення private - властивості fb)

end;

Function ABC4.6etC: Double; (Опис метода GetC)

Begin

Result;= fc; (Результата функції - значення private - властивості fc)

end;

end. (Закінчення модуля)

 

Таким чином, property-властивості надають можливість перенесення інформаційних властивостей в області класу з вузькою видимістю, і установ підтримують доступ до їх значень через спеціальні методи, але в значно більш зручній формі. Для викликає фрагмента програми не має значення, до звичайного властивості він звертається, або до property-властивості, тоді як клас має можливість підтримання внутрішньої цілісності.

Зауважимо, що замість функції читання і процедури установки може бути зазначено одне із звичайних властивостей, незалежно від його області видимості. У розглянутому прикладі таку можливість слід застосувати при описі property-властивостей а, b і з, вказавши замість функцій читання властивості fa, fb і fc, відповідно.

 

<== предыдущая лекция | следующая лекция ==>
Області видимості елементів класу | Культурогенез українського народу. Періодизація та витоки української культури
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 494; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.