目录
属性特性
属性特性的目的
在类定义中指定特性使您能够为特定目的自定义属性的行为。通过设置特性来控制属性的特征,例如访问权限、数据存储和可见性。子类不继承超类成员特性。
指定属性特性
在 properties 关键字的同一行为属性特性赋值:
properties (Attribute1 = value1, Attribute2 = value2,...)
...
end
例如,对 Data 属性给予 private 访问权限:
properties (Access = private)
Data
end
有关特性语法的详细信息,可以参考特性设定。
属性特性表
所有属性都支持下表中列出的特性。特性值适用于 properties...end 代码块中定义的所有属性,该代码块用于指定非默认值。
属性特性
特性名称 | 类 | 说明 |
---|---|---|
AbortSet | 逻辑值 默认值为 false | 如果为 true,则当新值与当前值相同时,MATLAB® 不设置属性值。MATLAB 不调用属性 set 方法(如果存在该方法)。 对于句柄类,将 AbortSet 设置为 true 还可以防止触发 PreSet 和 PostSet 事件。 |
Abstract | 逻辑值 默认值为 | 如果设置为 true,则此属性没有实现,但具体的子类必须在未将 Abstract 设置为 true 的情况下重新定义此属性。
|
Access(只写,无法查询此 meta.property 属性。在查询中使用 GetAccess 和 SetAccess。) |
| 使用 Access 将 SetAccess 和 GetAccess 设置为相同的值。直接查询 SetAccess 和 GetAccess 的值(非 Access)。 public - 不受限制的访问 protected - 从类或子类进行访问 private - 仅通过类成员(而非子类)进行访问 对此属性进行访问和设置的类的列表。采用以下格式将类指定为 meta.class对象:
|
Constant | 逻辑值 默认值为 false | 如果希望此属性在类的所有实例中仅使用一个值,请设置为 true:
|
Dependent | 逻辑值 默认值为 false | 如果设置为 false,属性值将存储在对象中。如果为 true,属性值不存储在对象中。set 和 get 函数无法通过使用属性名称对对象进行索引来访问属性。 对于未定义 get 方法的 Dependent 属性,MATLAB 不在命令行窗口中显示其名称和值,而是仅显示标量对象。 使用isequal 测试对象相等性时,不考虑从属属性 get 方法返回的值。
|
GetAccess | 枚举 默认值为 public | public - 不受限制的访问 protected - 从类或子类进行访问 private - 仅由类成员访问(不从子类访问) 列出对此属性具有 get 访问权限的类。采用以下格式将类指定为 meta.class 对象:
对于 Hidden 特性为 true 的属性,或者 GetAccess 为 protected 或 private 的属性,MATLAB 不会在命令行窗口中显示其名称和值。 将对象转换为 structs 时,struct函数定义所有属性的字段。 |
GetObservable | 逻辑值 默认值为 false | 如果为 true,并且它是句柄类属性,则可以创建侦听程序来访问该属性。每当查询属性值时,都会调用这些侦听程序。 |
Hidden | 逻辑值 默认值为 false | 确定该属性是否可以显示在属性列表中(如在属性检查器中,调用 set 或 get 时,等等)。 对于 Hidden 特性为 true 的属性,或者 GetAccess 为 protected 或 private 的属性,MATLAB 不会在命令行窗口中显示其名称和值。 |
NonCopyable | 逻辑值 默认值为 false | 确定复制对象时是否可以复制属性值。 只能在句柄类中将 NonCopyable 设置为 true。 |
PartialMatchPriority | 正整数 默认值 = 1 | 仅适用于matlab.mixin.SetGet 的子类。定义 set 和 get 方法中使用的部分属性名称匹配的相对优先级。 |
SetAccess | 枚举 默认值为 public | public - 不受限制的访问 protected - 从类或子类进行访问 private - 仅由类成员访问(不从子类访问) immutable - 只能在构造函数中设置属性。 列出对此属性进行设置的类。采用以下格式将类指定为meta.class对象:
参考类成员访问 |
SetObservable | 逻辑值 默认值为 false | 如果为 true ,并且它是句柄类属性,则可以创建侦听程序来访问该属性。每当修改属性值时,都会调用这些侦听程序。 |
Transient | 逻辑值 默认值为 false | 如果设置为 true,则在将对象保存到文件时不会保存属性值。 |
框架特性 | 使用特定框架基类的类具有特定于框架的特性。 |