您可以为来自派生的类的实例添加属性动态备注
班级。这些动态属性有时被称为实例属性。使用动态属性将临时数据附加到对象或分配要与类的实例关联的数据,但不是该类的所有对象。
有一个以上的程序可以在同一对象上定义动态属性。在这些情况下,避免命名冲突。动态属性名称必须有效MATLAB®标识符(参见变量名称)并且不能与类的方法相同。
一旦定义,动态属性就像类定义的属性一样:
使用点表示法设置和查询动态属性的值。(看将数据分配给动态属性。)
保存并加载所连接的对象时,MATLAB会保存并加载动态属性。(看动态属性和构造函数。)
定义动态属性的属性。(看设置动态属性属性)。
默认情况下,动态属性有其不可能
属性设置为真的
。如果复制包含动态属性的对象,则不会复制动态属性。(看具有动态属性的对象)
添加属性集并获取访问方法。(看设置并获取依赖属性的方法。)
侦听动态属性事件。(看动态财产事件。)
访问对象阵列的动态属性值,具有限制语法。(看访问数组中的动态属性。)
这是平等的
功能始终返回错误的
在比较具有动态属性的对象时,即使属性具有相同的名称和值。比较包含动态属性的对象,过载是平等的
为你的课程。
任何属于子类的课程动态备注
班级(这本身就是一个子类处理
类)可以使用该类别定义动态属性addprop.
方法。语法是:
p = addprop(h,'propertyname.')
在哪里:
P.
是一系列的meta.dynamicproperty.
对象
H
是一系列手柄
propertyname.
是您为每个对象添加的动态属性的名称
命名动态属性时仅使用有效名称(参见变量名称)。此外,不要使用以下名称:
与类方法的名称相同
与类活动的名称相同
包含一段时间(。
)
是支持数组功能的函数的名称:金宝app空的
那翻倒
那ctranspose.
那换乘
那重塑
那展示
那disp
那细节
, 要么种类
。
要设置属性属性,请使用meta.dynamicproperty.
与动态属性关联的对象。例如,如果P.
是返回的对象addprop.
,此语句设置了属性隐
归因于真的
:
p.hidden = true;
属性属性持续的
和抽象的
没有任何意义动态属性。将这些属性的值设置为真的
没有效果。
删除其删除动态属性meta.dynamicproperty.
目的:
删除(p);
假设,您使用的是预定义的用户界面窗口窗口小部件(按钮,滑块,复选框等)。您希望存储窗口小部件类别的每个实例的位置。假设窗口小部件类不设计用于存储特定布局方案的位置数据。您希望避免创建地图或哈希表以单独维护此信息。
假设这一点按钮
班级是一个子类动态备注
,添加动态属性以存储布局数据。这是一个创建一个简单的类UICONTROL.
按钮:
Classdef.按钮特性uihandle.结尾方法功能obj =按钮(POS)如果nargin> 0.如果长度(pos)== 4 obj.uihandle = UIControl('位置',pos,......'风格'那'按钮');别的错误('位置不正确')结尾结尾结尾结尾结尾
创建一个实例按钮
类,添加动态属性,并设置其值:
B1 =按钮([20 40 80 20]);b1.addprop('mycoord');b1.mycoord = [2,3];
访问动态属性就像任何其他属性一样,但仅在您定义它的对象上:
B1.Mycoord.
ans = 2 3
不建议使用使用非公共访问具有动态属性,因为这些属性属于通常在类方法之外创建的特定实例。动态属性的访问属性适用于包含动态属性的实例的类。动态属性访问属性不一定适用于其方法添加动态属性的类。
例如,如果基类方法使用对实例的私有访问添加动态属性,则私有访问仅适用于实例的类。
有关动态属性属性的更多信息,请参阅meta.dynamicproperty.
。使用句柄findprop.
得到的方法meta.dynamicproperty.
目的。
您可以使用句柄列出对象的动态属性findprop.
方法。以下是步骤:
使用使用的对象属性的名称特性
功能。
使用每个属性获取元数据对象findprop.
。
使用isa.
函数来确定元数据对象是否是一个meta.dynamicproperty.
目的。如果是这样,则属性是动态属性。
这getdynamicpropnames.
功能显示如何显示为输入定义的任何动态属性的名称obj.
。
功能getdynamicpropnames(obj)%找到动态属性AllProps =属性(OBJ);为了i = 1:numel(allprops)m = findprop(obj,allprops {i});如果是,'meta.dynamicproperty')disp(m.name)结尾结尾结尾