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
类。
属性
Name
— 类的名称
字符向量
类的名称,以字符向量形式返回。此属性返回的名称包含类包。
数据类型: char
Description
— 类的简短描述
字符向量
类的简短描述,以字符向量形式返回。对于用户定义的类,此属性的文本来自类定义中的注释。如果没有注释,该属性将返回空字符向量。有关如何包含类的帮助文本的详细信息,请参阅自定义帮助文本。
DetailedDescription
— 类的详细描述
字符向量
类的详细描述,以字符向量形式返回。对于用户定义的类,此属性的文本来自类定义中的注释。如果没有注释,该属性将返回空字符向量。有关如何包含类的帮助文本的详细信息,请参阅自定义帮助文本。
Hidden
— 类是否对检查工具隐藏
false
(默认) | true
类是否对检查工具隐藏,以逻辑值 true
或 false
形式返回。如果设置为 true
,则类不会出现在显示类名的 MATLAB 命令或工具的输出中。但是,您可以通过编程方式访问类。
数据类型: logical
Sealed
— 类是否可以子类化
false
(默认) | true
类是否可以子类化,以逻辑值形式返回。如果 Sealed
是 true
,则此类无法子类化。
数据类型: logical
Abstract
— 类抽象属性的值
false (默认) | true
类抽象属性的值,以逻辑值形式返回。如果类或任何属性或方法的 Abstract
属性设置为 true
,则此属性的值为 true
。有关抽象类的信息,请参阅抽象类和类成员。
数据类型: logical
Enumeration
— 类是否为枚举类
false
(默认) | true
类是否为枚举类,以逻辑值形式返回。如果 true
,则此类为枚举类。有关枚举类的详细信息,请参阅定义枚举类。
数据类型: logical
ConstructOnLoad
— 加载时调用构造函数
false
(默认) | true
加载时调用构造函数,以逻辑值形式返回。如果设置为 true
,MATLAB 将会在从 MAT 文件加载对象时自动调用类构造函数。要启用 ConstructOnLoad
,构造函数必须支持不带输入参数的调用。有关详细信息,请参阅对象的保存和加载过程。
数据类型: logical
HandleCompatible
— 类是否与句柄兼容
false
(默认) | true
类是否与句柄兼容,以逻辑值形式返回。如果为 true
,则此类是与句柄兼容的类。有关与句柄兼容的类的详细信息,请参阅Handle Compatible Classes。
数据类型: logical
InferiorClasses
— 指定为低于此类的类
meta.class
对象构成的元胞数组
指定为低于此类的类,以 meta.class
对象的元胞数组形式返回。有关类优先级的信息,请参阅Class Precedence。
数据类型: meta.class
ContainingPackage
— 包含类的包
meta.package
包含类的包,以 meta.package
对象形式返回。如果类不在包中,则此属性包含空 meta.package
对象。有关包的详细信息,请参阅包命名空间。
数据类型: meta.package
Aliases
— 别名列表
字符串数组
为类定义的别名的列表,以字符串数组形式返回。别名按从最旧到最新的顺序排列。
RestrictsSubclassing
— 类是否限制子类化
false
(默认) | true
类是否限制子类化,以逻辑值 true
或 false
形式返回。当类通过以下方式限制子类化时,MATLAB 将此属性设置为 true
:
将
Sealed
属性设置为true
使用
AllowedSubclasses
属性指定可子类化的类。
有关限制子类化的详细信息,请参阅Specify Allowed Subclasses。
数据类型: logical
PropertyList
— 为类定义的属性
meta.property
对象数组
为类定义的属性,以 meta.property
对象数组形式返回。meta.property
对象描述由此类定义的每个属性,包括所有继承的公共属性和受保护属性。有关属性的详细信息,请参阅属性。
数据类型: meta.property
MethodList
— 为类定义的方法
meta.method
对象数组
为类定义的方法,以 meta.method
对象数组形式返回。meta.method
对象描述此类定义的每个方法(包括继承的公共方法和受保护方法)。有关方法的更多信息,请参阅类设计中的方法。
数据类型: meta.method
EventList
— 为类定义的事件
meta.event
对象数组
为类定义的事件,包括所有继承的事件,以 meta.event
对象数组形式返回。只有句柄类可以定义事件,因此对于值类,此属性是空 meta.event
对象。所有 handle
类都继承 ObjectBeingDestroyed
事件。有关事件的详细信息,请参阅事件。
数据类型: meta.event
EnumerationMemberList
— 枚举成员的名称和隐藏状态
meta.EnumeratedValue
对象数组
枚举成员的名称和隐藏状态,以 meta.EnumeratedValue
对象数组形式返回。访问对应成员 meta.EnumeratedValue
对象的 Name
和 Hidden
属性以获取信息。有关详细信息,请参阅枚举。
数据类型: meta.EnumeratedValue
SuperclassList
— 此类的直接超类
meta.class
数组
此类的直接超类,以由 meta.class
对象组成的数组形式返回。meta.class
对象描述派生此类的每个直接超类。有关子类化的详细信息,请参阅子类定义。
数据类型: meta.class
方法
公共方法
fromName | 返回与指定类关联的 meta.class 对象 |
专用运算符和函数
这些方法将标准的 MATLAB 运算符和函数应用于此类中的对象。
eq (a == b ) | 相等函数 ( |
ne (a ~= b ) | 不等于函数 ( |
lt (a < b ) | 小于函数 ( |
le (a <= b ) | 小于或等于函数 ( |
gt (a > b ) | 大于函数 ( |
ge (a >= b ) | 大于或等于函数 ( |
事件
事件名称 | 触发器 | 事件数据 | 事件属性 |
---|---|---|---|
InstanceCreated | 每当创建由 此事件在所有构造函数执行完后立即发生。 | event.ClassInstanceEvent |
|
InstanceDestroyed | 每当销毁由 此事件在任何析构函数执行之前立即发生。 | event.ClassInstanceEvent |
|
示例
使用自检来获得关于类的信息
使用自检来获取关于 IntrospectionExample
类的继承信息。
IntrospectionExample
的代码
classdef IntrospectionExample % IntrospectionExample Performs basic functions on two numbers % This class can return the sum and product of its two 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: ' This class can return the sum and product of its two properties.' Hidden: 0 Sealed: 0 Abstract: 0 Enumeration: 0 ConstructOnLoad: 0 HandleCompatible: 0 InferiorClasses: {0x1 cell} ContainingPackage: [0x0 meta.package] Aliases: [0x1 string] RestrictsSubclassing: 0 PropertyList: [2x1 meta.property] MethodList: [4x1 meta.method] EventList: [0x1 meta.event] EnumerationMemberList: [0x1 meta.EnumeratedValue] SuperclassList: [0x1 meta.class]
IntrospectionExample
的属性摘要显示,在 MethodList
属性中描述了四种方法。访问 mc
的 MethodList
属性,并显示所有四个类方法的名称。
for i = 1:4 mc.MethodList(i).Name end
ans = 'multNumbers'
ans = 'addNumbers'
ans = 'IntrospectionExample'
ans = 'empty'
版本历史记录
在 R2008a 中推出MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)