Свойства.
Помимо полей и методов в объектах существуют свойства. При работе с объектом свойства выглядят как поля: они принимают значения и участвуют в выражениях. Но в отличие от полей свойства не занимают места в памяти, а операции их чтения и записи ассоциируются с обычными полями или методами. Это позволяет создавать необходимые сопутствующие эффекты при обращении к свойствам. Например, в объекте Reader присваивание свойству Active значения True вызовет открытие файла, а присваивание значения False — закрытие файла. Создание сопутствующего эффекта (открытие или закрытие файла) достигается тем, что за присваиванием свойству значения стоит вызов метода.
Объявление свойства выполняется с помощью зарезервированного слова property, например:
type
TDelimitedReader = class
...
FActive: Boolean;
...
// Метод записи (установки значения) свойства
procedure SetActive(const AActive: Boolean);
property Active: Boolean read FActive write SetActive; // Свойство
end;
Ключевые слова read и write называются спецификаторами доступа. После слова read указывается поле или метод, к которому происходит обращение при чтении (получении) значения свойства, а после слова write — поле или метод, к которому происходит обращение при записи (установке) значения свойства. Например, чтение свойства Active означает чтение поля FActive, а установка свойства — вызов метода SetActive.
Обращение к свойствам выглядит в программе как обращение к полям:
var
Reader: TDelimitedReader;
IsOpen: Boolean;
...
Reader: TDelimitedReader.Create;//Обязательное обращение к конструктору перед обращением к полю или свойству.
Reader.Active := True; // Эквивалентно Reader.SetActive(True);
IsOpen := Reader.Active; // Эквивалентно IsOpen := Reader.FActive
Если один из спецификаторов доступа опущен, то значение свойства можно либо только читать (задан спецификатор read), либо только записывать (задан спецификатор write).
-
Содержание
- Принципы объектно-ориентированного программирования.
- Структура класса.
- Свойства.
- Статические и виртуальные методы.
- Перезагружаемые методы.
- Конструкторы и деструкторы.
- Интегрированная среда разработки Delphi.
- Визуальные средства разработки.
- Программирование с управлением по событиям.
- Абстрактный метод.
- Методы класса.
- Исключительные ситуации.
- Атрибуты доступа в Delphi.
- Обработка исключительных ситуаций.
- Библиотека визуальных компонентов в Delphi (vcl).
- Ссылки на классы.
- Указатели на методы.
- Фреймы и шаблоны компонентов.
- Delphi 2009: отличия от предыдущих версий.
- Классы и модули.
- Модули и программы.
- Информация о типе во время выполнения.
- Полиморфизм и виртуальные методы.