Следующий рисунок показывает типовую спецификацию свойств. The properties
и end
ключевые слова определяют блок кода, который задает свойства, имеющие те же настройки атрибута.
Примечание
Свойства не могут иметь то же имя, что и класс.
Пример см. в разделе Создание простого класса.
Предыдущий пример показывает Coefficients
свойство, заданное как имеющее значение по умолчанию [0 0 1]
.
Вы можете инициализировать значения свойств с помощью MATLAB® выражения. Однако эти выражения не могут ссылаться на класс, который вы определяете каким-либо образом, кроме вызова статических методов класса. MATLAB выполняет выражения, которые создают начальные значения свойств только при инициализации класса, которая происходит непосредственно перед первым использованием класса. Дополнительные сведения о том, как MATLAB оценивает выражения значений по умолчанию, см. в разделе Значений свойства по умолчанию.
Имена свойства должны быть указаны в отдельных линиях. MATLAB интерпретирует имя, последующее за именем свойства, как имя класса.
Можно ограничить значения свойств, связав класс со свойством в определении свойства. Для примера - определение MyData
требует, чтобы значения, назначенные этому свойству, имели тип int32
или типы, совместимые с int32
.
properties MyData int32 end
Для получения дополнительной информации см. Раздел «Проверка значений свойств».
Синтаксис доступа к свойствам похож на синтаксис поля структуры MATLAB. Для примера, если obj
является объектом класса, тогда можно получить значение свойства, сославшись на имя свойства:
val = obj.PropertyName
Присвойте значения свойствам, поместив ссылку на свойство в левой части знака равенства:
obj.PropertyName = val
Когда вы получаете доступ к свойству, MATLAB выполняет любой набор свойств или получает метод доступа и запускает любые включенные события свойств.
Когда вы производите один класс от другого класса, производный (подкласс) класс наследует все свойства суперкласса. В целом подклассы определяют только свойства, которые являются уникальными для этого конкретного класса. Суперклассы определяют свойства, которые используются несколькими подклассами.
Атрибуты, заданные в properties
ключевое слово применяется ко всем определениям свойств, следующим в этом блоке. Если необходимо применить настройки атрибутов только к определенным свойствам, повторно используйте properties
и создайте другой блок свойств для этих свойств.
Для примера следующий код показывает SetAccess
для атрибута задано значение private
для IndependentVar
и Order
свойства, но не для Coefficients
свойство:
Для получения информации о свойствах определенного класса используйте properties
функция.