类派生的类的实例中添加属性dynamicprops
类。这些动态属性有时被称为实例属性。使用动态属性将临时数据附加到对象上,或者为想要与类的实例关联的数据赋值,但不是与该类的所有对象关联。
一个以上的程序可以在同一个对象上定义动态属性。在这些情况下,避免名称冲突。动态属性名称必须是有效的MATLAB®标识符(见变量名),且不能与类的方法同名。
一旦定义,动态属性的行为很像类定义的属性:
使用点表示法设置和查询动态属性值。(见将数据分配给动态属性。)
当您保存和加载所附加的对象时,MATLAB会保存和加载动态属性。(见动态属性和ConstructOnLoad。)
为动态属性定义属性。(见设置动态属性).
当您保存具有动态属性的对象时,MATLAB不保存属性属性值。因此,加载对象时不会保留任何非默认属性设置。(见保存和加载动态属性。)
默认情况下,动态属性有它们的NonCopyable
属性设置为真正的
。如果复制包含动态属性的对象,则不会复制该动态属性。(见具有动态属性的对象)
添加属性集和获取访问方法。(见从属属性的访问方法。)
监听动态属性事件。(见动态属性事件。)
使用受限制的语法从对象数组访问动态属性值。(见访问数组中的动态属性。)
的isequal
函数总是返回假
在比较具有动态属性的对象时,即使这些属性具有相同的名称和值。要比较包含动态属性的对象,请重载isequal
为了你的课。
类的子类的任何类dynamicprops
类(它本身是处理
类)可以使用addprop
方法。语法是:
P = addprop(H,'PropertyName')
地点:
P
是一个数组元。DynamicProperty
对象
H
是句柄数组吗
PropertyName
是要添加到每个对象的动态属性的名称吗
在命名动态属性时,只使用有效的名称(参见变量名).此外,不使用这样的名字:
是否与类方法的名称相同
是否与类事件的名称相同
包含句号(。
)
要设置属性属性,请使用元。DynamicProperty
对象与动态属性关联。例如,如果P
返回的对象是什么addprop
,该语句设置属性的隐藏的
属性来真正的
:
P.Hidden = true;
属性属性常数
和摘要
对动态属性没有意义。将这些属性的值设置为真正的
没有效果。
通过删除其属性来删除动态属性元。DynamicProperty
对象:
删除(P);
假设您正在使用一组预定义的用户界面小部件类(按钮、滑块、复选框等)。您希望存储小部件类的每个实例的位置。假设小部件类不是为存储特定布局方案的位置数据而设计的。您希望避免创建映射或散列表来单独维护这些信息。
假设按钮
类的子类dynamicprops
,添加一个动态属性来存储布局数据。下面是一个简单的类uicontrol
按钮:
classdef按钮< dynamicprops属性UiHandle结束方法函数Obj = button(pos)如果Nargin b> 0如果长度(pos) == 4 obj。UiHandle = uicontrol(“位置”、pos、…“风格”,“按钮”);其他的错误(“位置不当”)结束结束结束结束结束
的实例按钮
类,添加一个动态属性,并设置它的值:
B1 = button([20 40 80 20]);b1.addprop (“myCoord”);b1.myCoord= [2,3];
像访问任何其他属性一样访问动态属性,但只能在你定义它的对象上访问:
b1.myCoord
Ans = 2 3
不建议对动态属性使用非公共访问,因为这些属性属于通常在类方法之外创建的特定实例。动态属性的访问属性a应用于包含动态属性的实例的类。动态属性Access属性不一定应用于其方法添加动态属性的类。
例如,如果基类方法向实例添加具有私有访问权限的动态属性,则私有访问权限仅适用于该实例的类。
有关动态属性属性的详细信息,请参见元。DynamicProperty
。