主要内容

matlab.metadata.Class 类

命名空间: matlab.metadata
超类: matlab.metadata.MetaData

描述 MATLAB

meta.class 起已在 R2024a 中重命名

描述

matlab.metadata.Class 类提供一种获取有关 MATLAB® 类的描述性信息的方式。通过为特定类创建 matlab.metadata.Class 对象,您可以获得有关类定义的信息。

matlab.metadata.Class 属性包含属性、方法、事件和在 classdef 行中设置的类特性的列表,以及关于如何定义类的其他信息。

您无法设置 matlab.metadata.Class 对象属性的值。您只能查询属性。

可使用以下选项通过类的实例或使用类名称创建 matlab.metadata.Class 对象:

  • metaclass(obj) 返回一个 matlab.metadata.Class 对象,表示以参量形式传递的对象。

  • ?ClassName 返回一个表示指定类的 matlab.metadata.Class 对象。

  • matlab.metadata.Class.fromName ("ClassName") 是静态方法,它返回表示指定类的 matlab.metadata.Class 对象。

您不能通过调用 matlab.metadata.Class 对象的构造函数直接对该对象进行实例化。

matlab.metadata.Class 类是一个 handle 类。

类属性

Abstract
true
HandleCompatible
true

有关类属性的信息,请参阅类属性

创建对象

可使用以下选项通过类的实例或使用类名称创建 matlab.metadata.Class 对象:

  • metaclass(obj) 返回一个 matlab.metadata.Class 对象,表示以参量形式传递的对象。

  • ?ClassName 返回一个表示指定类的 matlab.metadata.Class 对象。

  • matlab.metadata.Class.fromName ("ClassName") 是静态方法,它返回表示指定类的 matlab.metadata.Class 对象。

您不能直接对 matlab.metadata.Class 对象进行实例化。

属性

全部展开

类的名称,以字符向量形式返回。此属性返回的名称包含类命名空间。

类的简短描述,以字符向量形式返回。对于用户定义的类,此属性的文本来自类定义中的注释。如果没有注释,该属性将返回空字符向量。有关如何包含类的帮助文本的详细信息,请参阅自定义帮助文本

类的详细描述,以字符向量形式返回。对于用户定义的类,此属性的文本来自类定义中的注释。如果没有注释,该属性将返回空字符向量。有关如何包含类的帮助文本的详细信息,请参阅自定义帮助文本

类是否对检查工具隐藏,以逻辑值 truefalse 形式返回。如果为 true,则类不会出现在显示类名称的 MATLAB 命令或工具的输出中。但是,您可以通过编程方式访问类。

数据类型: logical

类属性 Sealed 的值,以逻辑值形式返回。如果 Sealedtrue,则此类无法子类化。

数据类型: logical

类属性 Abstract 的值,以逻辑值形式返回。如果类或任何属性或方法的 Abstract 属性设置为 true,则此属性的值为 true。有关抽象类的信息,请参阅抽象类和类成员

数据类型: logical

类是否为枚举类,以逻辑值形式返回。如果 true,则此类为枚举类。有关枚举类的详细信息,请参阅定义枚举类

数据类型: logical

类属性 ConstructOnLoad 的值,以逻辑值形式返回。如果设置为 true,MATLAB 将会在从 MAT 文件加载对象时自动调用类构造函数。要启用 ConstructOnLoad,构造函数必须支持不带输入参量的调用。有关详细信息,请参阅对象的默认保存和加载过程

数据类型: logical

类属性 HandleCompatible 的值,以逻辑值形式返回。如果为 true,则此类是与句柄兼容的类。有关与句柄兼容的类的详细信息,请参阅Handle Compatible Classes

类特性 InferiorClasses 的值,以 matlab.metadata.Class 对象数组形式返回。有关类优先级的信息,请参阅Class Precedence

包含类的命名空间,以 matlab.metadata.Namespace 对象形式返回。如果类不在命名空间中,则此属性包含空 matlab.metadata.Namespace 对象。有关命名空间的详细信息,请参阅创建命名空间

为类定义的别名的列表,以字符串数组形式返回。别名按从最旧到最新的顺序排列。

类是否限制子类化,以逻辑值 truefalse 形式返回。当类通过以下方式限制子类化时,MATLAB 将此属性设置为 true

  • Sealed 属性设置为 true

  • 使用 AllowedSubclasses 属性指定可子类化的类。

有关限制子类化的详细信息,请参阅Specify Allowed Subclasses

为类定义的属性,以 matlab.metadata.Property 对象数组形式返回。matlab.metadata.Property 对象描述由此类定义的每个属性,包括所有继承的公共属性和受保护属性。有关属性的详细信息,请参阅属性

为类定义的方法,以 matlab.metadata.Method 对象数组形式返回。matlab.metadata.Method 对象描述此类定义的每个方法(包括继承的公共方法和受保护方法)。有关方法的更多信息,请参阅类设计中的方法

为类定义的事件,包括所有继承的事件,以 matlab.metadata.Event 对象数组形式返回。只有句柄类可以定义事件,因此对于值类,此属性是空 matlab.metadata.Event 对象。所有 handle 类都继承 ObjectBeingDestroyed 事件。有关事件的详细信息,请参阅事件

枚举成员的名称和隐藏状态,以 matlab.metadata.EnumerationMember 对象数组形式返回。访问对应成员 matlab.metadata.EnumerationMember 对象的 NameHidden 属性以获取信息。有关详细信息,请参阅枚举

此类的直接超类,以由 matlab.metadata.Class 对象组成的数组形式返回。matlab.metadata.Class 对象描述派生此类的每个直接超类。有关子类化的详细信息,请参阅子类定义

方法

全部展开

事件

事件名称触发器事件数据事件属性
InstanceCreated

每当创建由 matlab.metadata.Class 描述的类的实例时,都会发生此事件。

此事件在所有构造函数执行完后立即发生。

event.ClassInstanceEvent

NotifyAccess: private

ListenAccess: public

InstanceDestroyed

每当销毁由 matlab.metadata.Class 描述的类的实例时,都会发生此事件。

此事件在任何析构函数执行之前立即发生。

event.ClassInstanceEvent

NotifyAccess: private

ListenAccess: public

示例

全部折叠

使用自检来获取关于 IntrospectionExample 类的继承信息。

classdef IntrospectionExample
    % IntrospectionExample  Performs basic functions on two numbers
    % Class methods find the sum and product of its properties.
    properties
        % a  First property
        % First of two numeric properties
        a {mustBeNumeric} = 0
        
        % b  Second property
        % Second of two numeric properties
        b {mustBeNumeric} = 0
    end
    
    methods
        function sum = addNumbers(obj)
            % addNumbers  Sum the properties
            %   Finds the sum of properties a and b.
            sum = obj.a + obj.b;
        end
        function prod = multNumbers(obj)
            % multNumbers  Multiply the properties
            %   Finds the product of properties a and b.
            prod = obj.a*obj.b;
        end
    end
end

创建 IntrospectionExample 的一个元类实例。

mc = ?IntrospectionExample
mc = 

  Class with properties:

                    Name: 'IntrospectionExample'
             Description: 'Performs basic functions on two numbers'
     DetailedDescription: '  Class methods find the sum and product of its properties.'
                  Hidden: 0
                  Sealed: 0
                Abstract: 0
             Enumeration: 0
         ConstructOnLoad: 0
        HandleCompatible: 0
         InferiorClasses: [0×1 matlab.metadata.Class]
               Namespace: [0×0 matlab.metadata.Namespace]
                 Aliases: [0×1 string]
    RestrictsSubclassing: 0
            PropertyList: [2×1 matlab.metadata.Property]
              MethodList: [4×1 matlab.metadata.Method]
               EventList: [0×1 matlab.metadata.Event]
   EnumerationMemberList: [0×1 matlab.metadata.EnumerationMember]
          SuperclassList: [0×1 matlab.metadata.Class]


IntrospectionExample 的属性摘要显示,在 MethodList 属性中描述了四种方法。访问 mcMethodList 属性,并显示所有四个类方法的名称。

for i = 1:4
mc.MethodList(i).Name
end
ans = 
'multNumbers'
ans = 
'addNumbers'
ans = 
'IntrospectionExample'
ans = 
'empty'

版本历史记录

在 R2008a 中推出

全部展开