主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

matlab.metadata.Class 类

R2026a

命名空间: 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 对象进行实例化。

属性

全部展开

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

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

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

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

数据类型: logical

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

数据类型: 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 对象。有关命名空间的详细信息,请参阅创建命名空间。

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

类是否限制子类化,以逻辑值 true 或 false 形式返回。当类通过以下方式限制子类化时,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 对象的 Name 和 Hidden 属性以获取信息。有关详细信息,请参阅枚举。

此类的直接超类,以由 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 属性中描述了四种方法。访问 mc 的 MethodList 属性,并显示所有四个类方法的名称。

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

版本历史记录

在 R2008a 中推出

全部展开