属性的特性

在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 如果为真,对象保存到文件时不保存属性值。