Свойства инкапсулируют данные, принадлежащие экземплярам классов. Данные, содержащиеся в свойствах, могут быть общедоступными, защищенными или частными. Эти данные могут быть фиксированным набором постоянных значений или зависеть от других значений и рассчитываться только при запросе. Управление этими аспектами поведения свойств осуществляется путем задания атрибутов свойств и определения специфичных для свойства методов доступа.
В некоторых случаях свойства подобны полям struct объект. Однако сохранение данных в свойстве объекта обеспечивает большую гибкость. Свойства могут:
Определите постоянное значение, которое нельзя изменить вне определения класса. См. раздел Определение свойств класса с постоянными значениями.
Вычислите его значение на основе текущего значения других данных. См. раздел Методы получения свойств.
Выполните функцию, чтобы определить, соответствует ли попытка присвоить значение определенному критерию. См. раздел Методы набора свойств.
Инициирование уведомления о событии при попытке получить или установить его значение. См. раздел События набора свойств и запроса.
Управление доступом по коду к значениям свойств. См. раздел SetAccess и GetAccess атрибуты свойства Атрибуты.
Управление сохранением его значения вместе с объектом в MAT-файле. См. раздел Сохранение и загрузка объектов.
Пример класса, определяющего и использующего класс, см. в разделе Создание простого класса.
Существует два типа свойств:
Сохраненные свойства - используйте память и являются частью объекта
Зависимые свойства - нет выделенной памяти, и метод получения доступа вычисляет значение при запросе
Значение свойства сохраняется при сохранении объекта в MAT-файле
Может назначить значение по умолчанию в определении класса
Может ограничить значение свойства определенным классом и размером
Может выполнять функции проверки для управления допустимым значением свойства (по умолчанию и назначенным)
Может использовать метод доступа set для управления возможными значениями при установке
Требуется сохранить значение свойства в MAT-файле
Значение свойства не зависит от других значений свойств
Зависимые свойства сохраняют память, поскольку значения свойств, зависящие от других значений, вычисляются только при необходимости.
Определите свойства как зависимые, если необходимо:
Вычислить значение свойства из других значений (например, можно вычислить площадь из Width и Height свойства).
Укажите значение в различных форматах в зависимости от других значений. Например, размер кнопки в значениях, определяемых текущей настройкой ее Units собственность.
Предоставление стандартного интерфейса, в котором определенное свойство используется или не используется, в зависимости от других значений. Например, различные компьютерные платформы могут иметь различные компоненты на панели инструментов).
Примеры классов, использующих зависимые свойства, см. в разделах Расчет данных по требованию и Иерархия классов для гетерогенных массивов.