meta.property 类
包: meta
超类: meta.MetaData
描述 MATLAB 类的属性
描述
meta.property
类提供有关 MATLAB® 类属性的信息。meta.property
类的属性包含属性特性值和在类定义中根据语法指定的其他信息。所有属性都为只读属性。
meta.property
类是 handle
类。
创建对象
您不能直接对 meta.property
对象进行实例化。请通过 meta.class
PropertyList
属性获取 meta.property
对象,该属性包含一个 meta.property
对象数组,每个类属性对应一个对象。例如,将 ClassName
替换为要查询其属性的类的名称:
mco = ?ClassName;
plist = mco.PropertyList;
mp = plist(1); % meta.property for first property in list
使用 metaclass
函数从类实例获取 meta.class
对象:
mco = metaclass(obj);
属性
Name
— 属性名称
字符向量
属性名称,以字符向量形式返回。meta.property
Name
属性对应于类定义的关联属性的名称。
Description
— 属性的简短描述
字符向量
属性的简短描述,以字符向量形式返回。对于用户定义的类,此属性的文本来自属性定义的代码注释。如果没有注释,该属性将返回空字符向量。有关如何包含类属性的帮助文本的详细信息,请参阅自定义帮助文本。
DetailedDescription
— 属性的详细描述
字符向量
属性的详细描述,指定为字符向量。对于用户定义的类,此属性的文本来自属性定义的代码注释。如果没有注释,该属性将返回空字符向量。有关如何包含类属性的帮助文本的详细信息,请参阅自定义帮助文本。
GetAccess
— 属性的读取访问级别
public
(默认) | protected
| private
| 一个或多个 meta.class
对象
属性的读取 (get) 访问级别,以下列形式返回:
public
- 不受限制的访问protected
- 从类或子类进行访问private
- 仅由类成员访问(不从子类访问)对此属性具有读取权限的类的列表,指定为
meta.class
对象,形式如下:单个
meta.class
对象。meta.class
对象元胞数组。空元胞数组{}
与private
访问权限相同。
有关详细信息,请参阅类成员访问。
数据类型: enumerated
| meta.class
SetAccess
— 属性的写入访问级别
public
(默认) | protected
| private
| 一个或多个 meta.class
对象
属性的写入 (set) 访问级别,以下列形式返回:
public
- 不受限制的访问protected
- 从类或子类进行访问private
- 仅由类成员访问(不从子类访问)immutable
- 属性只能由构造函数设置。有关详细信息,请参阅Mutable and Immutable Properties。对此属性具有写入权限的类的列表,指定为
meta.class
对象,形式如下:单个
meta.class
对象。meta.class
对象元胞数组。空元胞数组{}
与private
访问权限相同。
有关详细信息,请参阅类成员访问。
数据类型: enumerated
| meta.class
Dependent
— 属性值是否取决于其他值
false
(默认) | true
属性值是否取决于其他值,以逻辑值 true
或 false
形式返回。如果为 false
(默认值),则属性值存储在对象中。如果为 true
,属性值将不会存储在对象中,并且 set 和 get 函数无法通过使用属性名称进行对象索引来访问属性。从属属性必须定义访问方法。有关详细信息,请参阅从属属性的 get 和 set 方法。
Constant
— 属性值是否为常量
false
(默认) | true
属性值是否为常量,以逻辑值 true
或 false
形式返回。如果为 true
,此属性在该类的所有实例中具有相同的值。有关详细信息,请参阅定义具有常量值的类属性。
Abstract
— 属性是否为抽象属性
false
(默认) | true
是否为抽象属性,以逻辑值 true
或 false
形式返回。如果为 true
,则该属性没有实现,并且该类是抽象类。有关详细信息,请参阅抽象类和类成员。
Transient
— 属性是否与对象一起保存
false
(默认) | true
属性是否与对象一起保存,以逻辑值 true
或 false
形式返回。如果为 true
,则当对象保存到 MAT 文件时,属性值不会保存。有关保存对象的详细信息,请参阅对象的保存和加载过程。
Hidden
— 属性是否从属性列表中隐藏
false
(默认) | true
属性是否从属性列表中隐藏,以逻辑值 true
或 false
形式返回。Hidden
确定属性是否显示在属性列表中(例如,作为调用 properties
的结果)。默认对象显示中不显示隐藏属性。
GetObservable
— 侦听程序能否接收属性 get 事件
false
(默认) | true
侦听程序能否接收属性 get 事件,以逻辑值 true
或 false
形式返回。如果为 true
,并且它是句柄类属性,则您可以创建在查询属性值时执行的侦听程序。每当查询属性值时,MATLAB 都会调用侦听程序。有关详细信息,请参阅属性 set 和查询事件。
SetObservable
— 侦听程序能否接收属性 set 事件
false
(默认) | true
侦听程序能否接收属性 set 事件,以逻辑值 true
或 false
形式返回。如果为 true
,并且它是句柄类属性,则您可以创建在设置属性值时执行的侦听程序。每当修改属性值时,MATLAB 都会调用侦听程序。有关详细信息,请参阅属性 set 和查询事件。
AbortSet
— 在值不变时是否设置属性
false
(默认) | true
在值不变时是否设置属性,以逻辑值 true
或 false
形式返回。如果为 true
,则当新值与当前值相同时,会中止设置属性值。如果该属性属于句柄类,则将 AbortSet
设置为 true
会阻止属性 PreSet
和 PostSet
事件的触发。
NonCopyable
— 属性是否可复制
false
(默认) | true
属性是否可复制,以逻辑值 true
或 false
形式返回。如果为 false
,则复制对象时复制属性值(仅限 handle
类)。默认情况下,复制句柄对象会复制该对象的具体属性。有关详细信息,请参阅Exclude Properties from Copy。
PartialMatchPriority
— 部分名称匹配的优先级
1 (默认) | 正整数
部分名称匹配的优先级,以数值形式返回。与 matlab.mixin.SetGet
的子类结合使用,定义 set
和 get
方法参数中使用的部分属性名称匹配的相对优先级。默认值为 1。值越高,分配的优先级越低。有关详细信息,请参阅为属性名称的部分匹配设置优先级。
GetMethod
— 属性 get 方法
[]
(默认) | 函数句柄
属性 get 方法,以函数句柄或空值形式返回。与此属性关联的 get 方法的函数句柄。如果类定义中没有指定 get 方法,则值为空。有关详细信息,请参阅 属性 get 和 set 方法。
SetMethod
— 属性 set 方法
[]
(默认) | 函数句柄
属性 set 方法,以函数句柄或空值形式返回。与此属性关联的 set 方法的函数句柄。如果类定义中没有指定 set 方法,则值为空。有关详细信息,请参阅 属性 get 和 set 方法
HasDefault
— 属性是否定义默认值
false
(默认) | true
属性是否定义默认值,以逻辑值 true
或 false
形式返回。如果为 true
,该属性在类定义中定义默认值。请在查询 DefaultValue
属性之前测试 HasDefault
,以避免出现 MATLAB:class:NoDefaultDefined
错误。
数据类型: logical
DefaultValue
— 类定义中指定的默认值
无 (默认) | 数组
在类定义中指定的默认值。抽象属性、从属属性和动态属性不能指定默认值。
如果类定义中没有默认值,MATLAB 不会显示 DefaultValue
属性。请在查询 DefaultValue
属性之前测试 HasDefault
,以避免出现 MATLAB:class:NoDefaultDefined
错误。
Validation
— 为属性定义的验证
空 (默认) | meta.Validation
对象
为属性定义的验证,以 meta.Validation
对象形式返回。此属性包含说明由此属性定义的验证的 meta.Validation
对象。如果属性未定义验证,则此属性包含空 meta.Validation
对象。
DefiningClass
— 定义属性的类
meta.class
对象
定义属性的类,以 meta.class
对象形式返回。meta.class
对象表示定义此属性的类,它可以是超类。
事件
事件名称 | 触发器 | 事件数据 | 事件属性 |
---|---|---|---|
PreGet | 事件正好在查询属性值之前发生。 | event.PropertyEvent |
|
PostGet | 事件正好在查询属性值之后发生。 | event.PropertyEvent |
|
PreSet | 事件正好在更改属性值之前发生。 | event.PropertyEvent |
|
PostSet | 事件正好在更改属性值之后发生。 | event.PropertyEvent |
|
示例
使用自检来获取有关属性的信息
使用 meta.property
获取有关 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
的 PropertyList
中的第一个属性以获取 meta.property
对象。
mc = ?IntrospectionExample; mc.PropertyList(1)
ans = property with properties: Name: 'a' Description: 'First property' DetailedDescription: ' First of two numeric properties' GetAccess: 'public' SetAccess: 'public' Dependent: 0 Constant: 0 Abstract: 0 Transient: 0 Hidden: 0 GetObservable: 0 SetObservable: 0 AbortSet: 0 NonCopyable: 0 PartialMatchPriority: 1 GetMethod: [] SetMethod: [] HasDefault: 1 DefaultValue: 0 Validation: [1x1 meta.Validation] DefiningClass: [1x1 meta.class]
检查该类对属性值执行什么验证。
mc.PropertyList(1).Validation
ans = Validation with properties: Class: [0x0 meta.class] Size: [1x0 meta.ArrayDimension] ValidatorFunctions: {@mustBeNumeric}
版本历史记录
在 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)