метакласс

Опишите класс MATLAB

Описание

Экземпляры класса meta.class содержат информацию о классах MATLAB®. Свойства чтения/записи класса meta.class соответствуют атрибутам класса и установлены только из определений классов на строке classdef. Можно запросить свойства только для чтения объекта meta.class получить информацию, которая задана синтаксически классом (например, чтобы получить имя класса).

Вы не можете инстанцировать объекта meta.class непосредственно. Можно создать объект meta.class из экземпляра класса или использования имени класса:

  • метакласс возвращается объект meta.class, представляющий объект, передал в качестве аргумента.

  • ClassName возвращает объект meta.class, представляющий именованный класс.

  • fromName — статический метод возвращает объект meta.class, представляющий именованный класс.

Например, функция metaclass возвращает объект meta.class, представляющий MyClass.

ob = MyClass;
obmeta = metaclass(ob);
obmeta.Name
ans =
MyClass

Можно использовать имя класса, чтобы получить объект meta.class:

obmeta = ?MyClass;

Можно также использовать статический метод fromName:

obmeta = meta.class.fromName('MyClass');

Свойства

СвойствоЦель

Атрибут Abstract, значение по умолчанию = false

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

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

Атрибут ConstructOnLoad, значение по умолчанию = false

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

Смотрите сохраняют и загружают процесс для объектов

ContainingPackage, только для чтения

Объект meta.package, описывающий пакет, в котором этот класс содержится, или пустой объект, если этот класс не находится в пакете.

Смотрите, что пакеты создают пространства имен.

Description, только для чтения

В настоящее время не используемый.

DetailedDescription, только для чтения

В настоящее время не используемый.

Атрибут Enumeration, значение по умолчанию = false

Если true, этот класс является классом перечисления. Смотрите Задают Классы Перечисления.

EventList, только для чтения

Массив объектов meta.event, описывающих каждое событие, заданное этим классом, включая все наследованные события.

См. События.

Events, только для чтения

Используйте EventList вместо этого

Массив ячеек объектов meta.event, описывающих каждое событие, заданное этим классом, включая все наследованные события.

EnumerationMemberList

Массив объектов meta.EnumeratedValue, описывающих имена элемента, задан классом перечисления.

Смотрите Перечисления для получения дополнительной информации о классах перечисления.

EnumeratedValues, только для чтения

Используйте EnumeratedMemberList вместо этого

Массив ячеек объектов meta.EnumeratedValue, описывающих имена элемента, задан классом перечисления.

Смотрите Перечисления для получения дополнительной информации о классах перечисления.

Атрибут Hidden, значение по умолчанию = falseЕсли установлено в true, класс не появляется в выводе команд MATLAB или инструментов то отображение имена классов.
Атрибут InferiorClasses, значение по умолчанию = {}

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

Смотрите приоритет класса

MethodList, только для чтения

Массив объектов meta.method, описывающих каждый метод, заданный этим классом, включая все наследованные открытые и защищенные методы.

См. методы в дизайне класса.

Methods, только для чтения

Используйте MethodList вместо этого

Массив ячеек объектов meta.method, описывающих каждый метод, заданный этим классом, включая все наследованные открытые и защищенные методы.

Name, только для чтенияИмя класса сопоставлено с этим объектом meta.class (массив char)
PropertyList, только для чтения

Массив объектов meta.property, описывающих каждое свойство, заданное этим классом, включая все наследованные общедоступные и защищенные свойства.

См. Свойства.

Properties, только для чтения

Используйте PropertyList вместо этого

Массив ячеек объектов meta.property, описывающих каждое свойство, заданное этим классом, включая все наследованные общедоступные и защищенные свойства.

См. Свойства.

RestrictsSubclassing, только для чтения

Если класс не является Sealed и имеет пустой список AllowedSubclasses в определении класса, это свойство установлено в false. Если класс является Sealed или задает какой-либо AllowedSubclasses, это свойство установлено в true.

См. Установку допустимых подклассов.

Атрибут Sealed, значение по умолчанию = false

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

SuperClassList, только для чтения

Массив объектов meta.class, описывающих каждый прямой суперкласс, от которого выведен этот класс.

См. конструкторов подкласса дизайна.

SuperClasses, только для чтения

Используйте SuperClassList вместо этого

Массив ячеек объектов meta.class, описывающих каждый прямой суперкласс, от которого выведен этот класс.

Методы

МетодЦель
fromNameВозвращает объект meta.class, сопоставленный с заданным именем класса.
tf = eq(Cls)Функция равенства (a == b). Используйте для теста, если две переменные относятся, чтобы равняться классам (классы, которые содержат точно тот же список элементов).
tf = ne(Cls)Не равняются функции (a ~= b). Используйте для теста, если две переменные относятся к различным метаклассам.
tf = lt(ClsA,ClsB)Меньше, чем функция (ClsA < ClsB). Используйте, чтобы определить, является ли ClsA строгим подклассом ClsB (i. e., строгий подкласс означает, что ClsX < ClsX является false).
tf = le(ClsA,ClsB)Меньше чем или равный функции (ClsA <= ClsB). Используйте, чтобы определить, является ли ClsA подклассом ClsB.
tf = gt(ClsA,ClsB)Больше, чем функция (ClsA > ClsB). Используйте, чтобы определить, является ли ClsA строгим суперклассом ClsB (i. e., строгий суперкласс означает, что ClsX > ClsX является false).
tf = ge(ClsA,ClsB)Больше, чем или равный функции (ClsA >= ClsB). Используйте, чтобы определить, является ли ClsA суперклассом ClsB.

События

СобытиеЦель

InstanceCreated

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

InstanceDestroyed

Если класс является классом Handle, это событие имеет место каждый раз, когда экземпляр этого класса Handle уничтожается, включая все подклассы. Событие сразу имеет место, прежде чем любые функции деструктора выполняются.

Примеры

Найдите атрибуты свойства с помощью класса handle метод findobj и объект audioplayer meta.class. Определите, задает ли класс свойство под названием SampleRate и делает это имеет общедоступный доступ к набору.

mc = ?audioplayer;
mp = findobj(mc.PropertyList,'Name','SampleRate');
strcmp(mp.SetAccess,'public')
   ...
Была ли эта тема полезной?