文档

动态属性-向实例添加属性

什么是动态属性

类派生的类的实例中添加属性dynamicprops类。这些动态属性有时被称为实例属性。使用动态属性将临时数据附加到对象,或将数据分配给希望与类的实例关联的数据,但不是该类的所有对象。

可以有多个程序在同一个对象上定义动态属性。在这些情况下,避免名称冲突。动态属性名必须是有效的MATLAB®标识符(见变量名),并且不能与类的方法名称相同。

动力特性特性

一旦定义,动态属性的行为就很像类定义的属性:

定义动态属性

类的子类的任何类dynamicprops类的子类处理类定义动态属性)addprop方法。语法为:

P = addprop(H,PropertyName

地点:

P的数组。元。DynamicProperty对象

H是句柄数组吗

PropertyName是要添加到每个对象的动态属性的名称吗

命名动态属性

在命名动态属性时只使用有效的名称(参见变量名).此外,使用这样的名字:

  • 是否与类方法的名称相同

  • 是否与类事件的名称相同

  • 包含句点(

  • 是支持数组功能的函数名:金宝app转置ctranspose交换重塑显示disp细节,或排序

设置动态属性

要设置属性属性,请使用元。DynamicProperty与动态属性关联的对象。例如,如果P返回的对象是addprop,此语句设置属性的隐藏的属性来真正的

P.Hidden = true;

属性属性常数而且摘要对动态属性没有意义。将这些属性的值设置为真正的没有效果。

删除动态属性

通过删除其来删除动态属性元。DynamicProperty对象:

删除(P);

将数据分配给动态属性

假设,您正在使用一组预定义的用户界面小部件类(按钮、滑块、复选框等)。您希望存储小部件类的每个实例的位置。假设小部件类不是为存储特定布局方案的位置数据而设计的。您希望避免创建映射或哈希表来单独维护此信息。

假设按钮类的子类dynamicprops,添加一个动态属性来存储布局数据。下面是一个简单的类来创建uicontrol按钮:

classdef按钮< dynamicprops属性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

动态属性的访问属性

不建议使用动态属性的非公共访问,因为这些属性属于通常在类方法之外创建的特定实例。动态属性的Access属性应用于包含该动态属性的实例的类。动态属性Access属性不一定应用于其方法添加动态属性的类。

例如,如果基类方法添加具有对实例的私有访问的动态属性,则私有访问仅应用于实例的类。

有关动态属性属性的更多信息,请参见元。DynamicProperty.使用手柄findprop方法来获取元。DynamicProperty对象。

相关的话题