本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

属性特性

属性特性的目的

在类定义中指定特性使您能够为特定目的自定义属性的行为。通过设置特性来控制属性的特征,例如访问权限、数据存储和可见性。子类不继承超类成员特性。

指定属性特性

properties 关键字的同一行为属性特性赋值:

properties (Attribute1 = value1, Attribute2 = value2,...)
   ...
end

例如,对 Data 属性给予 private 访问权限:

properties (Access = private)
   Data
end

有关特性语法的详细信息,请参阅特性设定

属性特性表

所有属性都支持下表中列出的特性。特性值适用于 properties...end 代码块中定义的所有属性,该代码块用于指定非默认值。

属性特性

特性名称

说明

AbortSet

逻辑值

默认值为 false

如果为 true,则当新值与当前值相同时,MATLAB® 不设置属性值。MATLAB 不调用属性 set 方法(如果存在该方法)。

对于句柄类,将 AbortSet 设置为 true 还可以防止触发 PreSetPostSet 事件。

请参阅Assignment When Property Value Is Unchanged

Abstract

逻辑值

默认值为 false

如果设置为 true,则此属性没有实现,但具体的子类必须在未将 Abstract 设置为 true 的情况下重新定义此属性。

  • 抽象属性不能定义设置或访问方法。请参阅属性访问方法

  • 抽象属性不能定义初始值。请参阅Assigning a Default Value

  • 对于属性 SetAccessGetAccess 特性,所有子类必须与超类指定相同的值。

  • Abstract=true 与类属性 Sealed=false 结合使用(默认值)。

Access(只写,无法查询此 meta.property 属性。在查询中使用 GetAccessSetAccess。)

  • 枚举,默认值为 public

  • meta.class 对象

  • meta.class 对象的元胞数组

使用 AccessSetAccessGetAccess 设置为相同的值。直接查询 SetAccessGetAccess 的值(非 Access)。

public - 不受限制的访问

protected - 从类或子类进行访问

private - 仅通过类成员(而非子类)进行访问

对此属性进行访问和设置的类的列表。采用以下格式将类指定为 meta.class 对象:

  • 单个 meta.class 对象

  • meta.class 对象元胞数组。空元胞数组 {}private 访问权限相同。

请参阅类成员访问

Constant

逻辑值

默认值为 false

如果您希望此属性在类的所有实例中仅使用一个值,请设置为 true

  • 子类会继承常量属性,但不能更改常量属性。

  • Constant 属性不能为 Dependent

  • SetAccess 被忽略。

有关详细信息,请参阅定义具有常量值的类属性

Dependent

逻辑值

默认值为 false

如果设置为 false,属性值将存储在对象中。如果为 true,属性值不存储在对象中。set 和 get 函数无法通过使用属性名称对对象进行索引来访问属性。

对于未定义 get 方法的 Dependent 属性,MATLAB 不在命令行窗口中显示其名称和值,而是仅显示标量对象。

使用 isequal 测试对象相等性时,不考虑从属属性 get 方法返回的值。

GetAccess

枚举

默认值为 public

public - 不受限制的访问

protected - 从类或子类进行访问

private - 仅由类成员访问(不从子类访问)

列出对此属性具有 get 访问权限的类。采用以下格式将类指定为 meta.class 对象:

  • 单个 meta.class 对象

  • meta.class 对象元胞数组。空元胞数组 {}private 访问权限相同。

请参阅类成员访问

对于 Hidden 特性为 true 的属性,或者 GetAccessprotectedprivate 的属性,MATLAB 不会在命令行窗口中显示其名称和值。

将对象转换为 structs 时,struct 函数定义所有属性的字段。

GetObservable

逻辑值

默认值为 false

如果为 true,并且它是句柄类属性,则您可以创建侦听程序来访问该属性。每当查询属性值时,都会调用这些侦听程序。请参阅属性 set 和查询事件

Hidden

逻辑值

默认值为 false

确定该属性是否可以显示在属性列表中(如在属性检查器中,调用 setget 时,等等)。

对于 Hidden 特性为 true 的属性,或者 GetAccessprotectedprivate 的属性,MATLAB 不会在命令行窗口中显示其名称和值。

NonCopyable

逻辑值

默认值为 false

确定复制对象时是否可以复制属性值。

您只能在句柄类中将 NonCopyable 设置为 true

有关详细信息,请参阅Exclude Properties from Copy

SetAccess

枚举

默认值为 public

public - 不受限制的访问

protected - 从类或子类进行访问

private - 仅由类成员访问(不从子类访问)

immutable - 只能在构造函数中设置属性。

请参阅Mutable and Immutable Properties

列出对此属性进行设置的类。采用以下格式将类指定为 meta.class 对象:

  • 单个 meta.class 对象

  • meta.class 对象元胞数组。空元胞数组 {}private 访问权限相同。

请参阅类成员访问

SetObservable

逻辑值

默认值为 false

如果为 true,并且它是句柄类属性,则您可以创建侦听程序来访问该属性。每当修改属性值时,都会调用这些侦听程序。请参阅属性 set 和查询事件

Transient

逻辑值

默认值为 false

如果设置为 true,则在将对象保存到文件时不会保存属性值。有关保存对象的详细信息,请参阅对象的保存和加载过程

框架特性

使用特定框架基类的类具有特定于框架的特性。有关这些特性的信息,请参阅您正在使用的特定基类的文档。

相关主题