Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

meta.class 类

包: meta
超类: meta.MetaData

描述 MATLAB

说明

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

meta.class 对象的某些属性包含在对应的 MATLAB 类中定义的类属性的值。查询这些属性可获取由 classdef 行上的类定义通过语法指定的信息。

其他属性包含由类定义的属性、方法和事件的列表,以及关于如何定义类的其他信息。

您无法设置 meta.class 对象属性的值。您只能查询属性。

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

  • metaclass(obj) - 返回一个 meta.class 对象,表示以参数形式传递的对象。

  • ?ClassName - 返回一个表示指定类的 meta.class 对象。

  • meta.class.fromName('ClassName') - 静态方法,返回一个表示指定类的 meta.class 对象。

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

meta.class 类是 handle 类。

类属性

Abstract
true

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

属性

全部展开

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

示例: classdef (Abstract = true) ...

数据类型: logical

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

示例: classdef (ConstructOnLoad = true) ...

数据类型: logical

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

数据类型: meta.package

当前不用于从注释中收集有关类的信息。

数据类型: char | string

当前不用于从注释中收集有关类的信息。

数据类型: char | string

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

数据类型: logical

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

数据类型: meta.EnumeratedValue

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

数据类型: meta.event

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

数据类型: logical

指定为低于此类的类,以 meta.class 对象的元胞数组形式返回。有关类优先级的信息,请参阅Class Precedence

示例: classdef (InferiorClasses = {?ClassName1,?ClassName2}) ...

数据类型: meta.class

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

数据类型: meta.method

类的名称,以字符向量形式返回。此属性返回的类名称不包括任何包含该类的包。

数据类型: char

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

数据类型: meta.property

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

  • Sealed 属性设置为 true

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

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

示例: classdef (AllowedSubclasses = {?ClassName1,?ClassName2}) ...

数据类型: logical

类是否可以子类化,以逻辑值形式返回。如果 Sealedtrue,则此类无法子类化。

示例: classdef (Sealed = true) ...

数据类型: logical

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

示例: classdef MyClass < MySuperclass & MyMixin

数据类型: meta.class

方法

全部展开

事件

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

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

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

event.ClassInstanceEvent

NotifyAccess: private

ListenAccess: public

InstanceDestroyed

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

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

event.ClassInstanceEvent

NotifyAccess: private

ListenAccess: public

示例

全部折叠

使用 handle 类的 findobj 方法和 audioplayer meta.class 对象查找属性特性。确定您是否可以更改 audioplayer 对象的 SampleRate 属性。

创建 audioplayer 对象。

load('handel.mat')
player = audioplayer(y,Fs);

获取 audioplayer 对象的 meta.class 对象。

mc = metaclass(player);

获取 SampleRate 属性的 meta.property 对象。

mp = findobj(mc.PropertyList,'Name','SampleRate');

使用 meta.property 对象确定是否可以修改 SampleRate 属性。如果 SetAccesspublic,请设置 SampleRate 属性。

if strcmp(mp.SetAccess,'public')
   player.SampleRate = 7200;
end
在 R2008a 中推出