在properties关键字同一行定义属性的特性:
code.matlab
properties(Attribute1=value1, Attribute2=value2,...)
...
end
例如,定义下面的Data属性为private access:
code.matlab
properties(Access=private)
Data
end
属性的特性如表3-1所示。
表3-1 属性的特性
| 特性名称 | 类 | 描 述 |
|---|---|---|
| AbortSet | logical default=false | 如果为true,若新的属性值与当前值相同,则MATLAB不设置属性值。此时MATLAB不调用属性set方法。 对于句柄类,设置AbortSet的值为true也可防止触发属性PreSet和PostSet事件。 |
| Abstract | logical default=false | 如果为true,属性没有实现,但是其子类必须重新定义该属性,Abstract属性不设置为true。 抽象属性不能定义set或get access方法。 抽象属性不能定义初值。 对于属性SetAccess和GetAccess特性,所有子类必须指定与其父类一样的值。 Abstract=true使用类特性Sealed=false(默认值) |
| Access | 枚举,default=public meta.class对象 meta.class对象构成的单元数组 | public:访问无限制 protected:从类或子类访问 private:只能被类成员访问 |
| Constant | logical default=false | 设置为true时为常数。 |
| Dependent | logical default=false | 如果为false,属性值保存在对象中;如果为true,属性值不保存在对象中。 |
| GetAccess | 枚举,default=public | public:访问无限制 protected:从类或子类访问 private:只能被类成员访问 |
| GetObservable | logical default=false | 如果为true并且是一个句柄类属性,可以创建听众来访问该属性。不管什么时候请求属性值,听众都会被调用。 |
| Hidden | logical default=false | 确定属性是否能显示在属性列表中。 |
| NonCopyable | logical default=false | 确定对象被复制时属性值是否也被复制。只针对句柄类。 |
| SetAccess | 枚举,default=public | public:访问无限制 protected:从类或子类访问 private:只能被类成员访问 immutable:属性只能在构造函数中设置 |
| SetObservable | logical default=false | 如果为真,并且是句柄类属性,则可以为访问属性创建听众。每次属性值被修改时调用听众。 |
| Transient | logical default=false | 如果为真,对象保存到文件时不保存属性值。 |