Атрибуты класса

Определение атрибутов класса

Все классы поддерживают атрибуты, перечисленные в следующей таблице. Атрибуты позволяют изменять поведение класса. Значения атрибутов применяются к классу, заданному в classdef блок.

classdef (Attribute1 = value1, Attribute2 = value2,...) ClassName
   ...
end
Для получения дополнительной информации о синтаксисе атрибутов см. «Спецификация атрибута».

Атрибуты класса

Имя атрибута

Класс

Описание

Abstract

logical

(по умолчанию = false)

Если задано как true, этот класс является абстрактным классом (не может быть создан экземпляр).

Смотрите абстрактные классы и Членов класса для получения дополнительной информации.

AllowedSubclasses

meta.class объект или массив ячеек meta.class объекты

Перечислите классы, которые могут подклассифицировать этот класс. Задайте подклассы следующим meta.class объекты в форме:

  • Одно meta.class объект

  • Массив ячеек meta.class объекты. Пустой массив ячеек, {}, то же самое, что и Sealed класс (без подклассов).

Задайте meta.class объекты, использующие? ClassName только синтаксис.

Дополнительные сведения см. в разделе «Задание разрешенных подклассов».

ConstructOnLoad

logical

(по умолчанию = false)

Если true, MATLAB® вызывает конструктор классов при загрузке объекта из MAT-файла. Поэтому реализуйте конструктор, чтобы он мог быть вызван без аргументов, не создавая ошибки.

Дополнительные сведения см. в разделе «Инициализация объектов при загрузке».

HandleCompatible

logical

(по умолчанию = false) для классов значений

Если задано как true, этот класс может использоваться в качестве суперкласса для классов handle. Все классы Handle HandleCompatible по определению. Дополнительные сведения см. в разделе Совместимые классы Handle.

Hidden

logical

(по умолчанию = false)

Если true, этот класс не отображается в выходах superclasses или help функций.

InferiorClasses

meta.class объект или массив ячеек meta.class объекты

Используйте этот атрибут для установления связи приоритета между классами. Задайте массив ячеек meta.class объекты, использующие ? оператор.

Фундаментальные классы всегда уступают определяемым пользователем классам и не отображаются в этом списке.

Смотрите Приоритет класса и Доминирующий аргумент в Перегруженных Графических Функциях.

Sealed

logical

(по умолчанию = false)

Если true, этот класс не может быть подклассифицирован.

Атрибуты среды

Классы, которые используют определенные базовые классы среды, имеют специфичные для среды атрибуты. Для получения информации об этих атрибутах см. документацию по конкретному базовому классу, который вы используете.

Определение атрибутов

Атрибуты заданы для членов класса в classdef, properties, methods, и events блоки определения. Конкретный параметр атрибута применяется ко всем представителям, заданным в этом конкретном блоке. Можно использовать несколько properties, methods, и events блоки определения для применения различных параметров атрибутов к различным членам класса.

Значения атрибутов суперкласса не наследуются

Настройки атрибутов класса не наследуются, поэтому значения атрибутов суперкласса не влияют на подклассы.

Синтаксис атрибута

Задайте значения атрибутов класса в круглых скобках, разделяя каждую пару имя/значение атрибута запятыми. Список атрибутов всегда следует classdef или ключевое слово члена класса, как показано на рисунке:

classdef (attribute-name = expression, ...) ClassName

   properties (attribute-name = expression, ...)
      ...
   end
   methods (attribute-name = expression, ...)
      ...
   end
   events (attribute-name = expression, ...)
      ...
   end
end

Специфичные для класса атрибуты

Некоторые классы MATLAB определяют дополнительные атрибуты, которые можно использовать только с иерархиями классов, которые определяют эти атрибуты. Для получения информации о дополнительных атрибутах, поддерживаемых этими классами, см. определенную документацию для классов, которые вы используете.

Похожие темы