
- •Свойства
- •При запросе значения свойства оно считывается
- •Физически после компиляции программы
- •Объявление свойства:
- •Эта часть имеет вид:
- •Часть read - представляет механизм для считывания (возвращения) значения свойства.
- •В части write - дается механизм задания значения свойства.
- •В случае отсутствия части write изменить значение этого свойства нельзя, то есть это
- •Уровень инкапсуляции свойства Поля класса располагаются в скрытой секции.
- •Пример
- •type
- •Событийно-ориентированное программирование
- •Реакция ОС на событие
- •События - обработка
- •Обработчик события - процедура:
- •Объявление события
- •Пример - как реализован обработчик события TButton.OnClick
- •Комментарий к примеру
- •Пример – присваивание обработчика 25 кнопкам
- •procedure TTestForm.OwnButtonClick (Sender:TObject); begin
- •Операциисклассамииобъектами
- •Операция as - приведениетипа

Свойства
Свойства – это особые характеристики класса, специально введенные для
обеспечения принципа инкапсуляции.
Свойства в своем роде замещают поля класса, к которым происходит обращение
извне.
Следование стилю ООП подразумевает
недоступность полей объекта извне и
обращение к ним с помощью
соответствующих свойств.
1

При запросе значения свойства оно считывается
из соответствующего поля.
При попытке присвоить свойству какое-либо значение
вызывается процедура, изменяющая значение поля.
В таком стиле написаны компоненты библиотеки визуальных компонентов VCL (visual component library) Delphi.
2

Физически после компиляции программы
свойства как таковые не существуют –
они заменяются на соответствующие методы или
поля.
Однако в программе можно их использовать аналогично полям, но с учетом двух исключений:
свойство нельзя передавать в подпрограмму как параметр-переменную,
к свойству нельзя применять адресную операцию.
3

Объявление свойства:
…..
prorerty имя свойства: тип свойства способ чтения и записи значения свойства;
тип свойства – может быть любым за
исключением файлового типа.
способ чтения и записи значения свойства –
это специальная часть в объявлении свойства, указывающая на методы или поля, с помощью которых можно получить или изменить значение свойства:
4

Эта часть имеет вид:




































read имя метода или поля write имя метода или поля default значение по умолчанию
Зарезервированные слова не соответствуют одноименным стандартным процедурам.
Здесь они используются для обозначения частей конструкции, с помощью которой объявляется свойство.
Методы здесь представляются только названиями, без списка параметров и типа возвращаемого результата (для функций).
5

Часть read - 







































представляет механизм для считывания (возвращения) значения свойства.
Указанный здесь метод должен быть функцией без параметров, возвращающей результат того же типа, что и свойство.
Если после read идет имя поля, то и оно должно
быть аналогичного типа.
В случае отсутствия части read получить значение этого свойства нельзя,
то есть это свойство только для записи.
6

В части write - 







































дается механизм задания значения свойства.
Метод, здесь должен быть процедурой с одним параметром-значением или параметром- константой, имеющим тип, совпадающий с типом свойства.
Значение, передаваемое параметру определяет
новое значение свойства.
Если же вместо процедуры используется поле, то оно должно быть
того же типа, что и свойство.
7

В случае отсутствия части write изменить значение этого свойства нельзя, то есть это свойство только для чтения
Часть default -
используется в том случае, если соответствующему свойству необходимо
присвоить некоторое значение по умолчанию.
Задаваемое таким образом значение должно иметь тот же тип, что и свойство.
8

Уровень инкапсуляции свойства Поля класса располагаются в скрытой секции.
Для свойств может быть предусмотрен один из следующих уровней инкапсуляции:
Свойства, имеющие статус published,
автоматически доступны для редактирования в окне инспектора объектов.
Свойства, объявленные в секции public,
доступны только во время выполнения.
9

Пример
Объявление свойства, которое может использоваться для разрешения или запрета импорта каких-либо данных
в компонент.
Значением свойства можно управлять, и программно, и, в том числе, через инспектор объектов в процессе проектирования приложения.
10