主要内容

属性的属性

属性属性的作用

您可以在类定义中指定属性,以便为特定目的自定义属性的行为。通过设置属性控制属性的访问、数据存储和可见性等特性。子类不继承父类成员属性。

指定属性属性

属性属性在同一行上与属性关键字。

属性(Attribute1value1Attribute2value2,……结束

例如,定义一个属性数据私人访问。

属性(Access = private)数据结束

对于值为的属性,可以使用更简单的语法真正的.属性名称本身表示为真,在名称上添加not操作符(~)表示为假。例如,这个块定义抽象属性。

属性(抽象)...结束

属性表

所有属性都支持本表中列出的属性。属性值应用于中定义的所有属性属性结束……指定非默认值的代码块。未显式定义的属性采用默认值。

属性的属性

属性

额外的信息

AbortSet

  • 真正的——MATLAB®如果新值与当前值相同,则不设置属性值或调用set方法。

  • (默认)- MATLAB设置属性值而不管当前值。

仅用于句柄类。设置AbortSet真正的还可以防止触发属性预设而且PostSet事件。

有关更多信息,请参见属性值不变时的赋值

摘要

  • 真正的-属性没有实现,但具体的子类必须重写此属性摘要设置为真正的

  • (默认值)-属性是具体的,不需要在子类中重写。

抽象属性不能定义set或get访问方法。看到属性获取和设置方法

抽象属性不能定义初始值。

密封类不能定义抽象成员。

访问

  • 公共(默认)-可以从任何代码访问该属性。

  • 受保护的-可以从定义类或其子类访问属性。

  • 私人—属性只能被定义类的成员访问。

  • 具有get和set访问此属性的类的列表。将类指定为单个类meta.class的单元格数组meta.class对象。看到物业查阅清单获取更多信息。

使用访问设置SetAccess而且GetAccess到相同的值。

指定访问作为一个空单元格数组,{},等于私人访问。

看到类成员访问获取更多信息。

常数

  • 真正的-属性在类的所有实例中具有相同的值。

  • (默认值)-属性值可以在不同实例之间变化。

子类继承常量属性,但不能更改它们。

常量属性也不能被定义为相互依赖的。

的价值SetAccess常量属性被忽略。

看到用常量定义类属性获取更多信息。

依赖

  • 真正的—属性值不存储在对象中。该值在访问属性时计算。

  • (默认值)-属性值存储在对象中。

您可以为依赖属性定义set方法,但是set方法不能实际设置属性的值。它可以执行其他操作,例如设置另一个属性的值。看到何时使用具有依赖属性的Set方法举个例子。

依赖属性get方法返回的值在使用测试对象是否相等时不被考虑isequal

GetAccess

  • 公共(默认)-该属性可以从任何代码读取。

  • 受保护的-属性可以从定义类或其子类中读取。

  • 私人-属性只能被定义类的成员读取。

  • 可读取此属性的类列表。将类指定为单个类meta.class的单元格数组meta.class对象。看到物业查阅清单获取更多信息。

指定GetAccess作为一个空单元格数组,{},等于私人访问。

在命令窗口中,MATLAB不会显示属性的名称和值受保护的私人GetAccess

所有子类必须为属性指定与父类相同的值SetAccess而且GetAccess属性。

看到类成员访问获取更多信息。

GetObservable

  • 真正的—可以为句柄类属性创建监听器。每当查询属性值时,都会调用侦听器。

  • (默认)-侦听器不能访问此属性。

看到属性设置和查询事件获取更多信息。

隐藏的

  • 真正的属性在属性列表或调用的结果中不可见得到,或属性功能。

  • (默认)-属性是可见的。

在命令窗口中,MATLAB不显示属性的名称和值隐藏的属性是真正的.然而,隐藏属性在类图查看器应用程序中是可见的。

NonCopyable

  • 真正的—复制定义属性值的对象时,不会复制该属性值。

  • (默认)-复制对象时复制属性值。

你可以设置NonCopyable真正的只在句柄类中。

有关更多信息,请参见从复制中排除属性

PartialMatchPriority

中使用的部分属性名称匹配的相对优先级得到而且方法。缺省值为1。

的子类中使用matlab.mixin.SetGet

有关更多信息,请参见设置匹配部分属性名的优先级

SetAccess

  • 公共(默认)-该属性可以从任何代码设置。

  • 受保护的-属性可以从定义类或其子类中设置。

  • 私人-属性只能由定义类的成员设置。

  • 不可变的—该属性只能由构造函数设置。

  • 已设置访问此属性的类的列表。将类指定为单个类meta.class的单元格数组meta.class对象。看到物业查阅清单获取更多信息。

所有子类必须为属性指定与父类相同的值SetAccess而且GetAccess属性。

有关更多信息,请参见类成员访问包含对象的属性,可变和不可变属性

SetObservable

  • 真正的—可以为句柄类属性创建监听器。每当设置属性值时,都会调用侦听器。

  • (默认)-侦听器不能访问此属性。

看到属性设置和查询事件获取更多信息。

瞬态

  • 真正的—当对象保存到文件或从MATLAB发送到另一个程序(如MATLAB引擎应用程序)时,不保存属性值。

  • (默认)—保存对象时保存属性值。

看到对象的保存和加载过程获取更多信息。

框架的属性

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

物业查阅清单

的列表meta.class的实例访问GetAccess,SetAccess属性。类的访问列表Prop1而且Prop2属性。

classdefPropertyAccess属性(GetAccess = {?ClassA,?ClassB}) Prop1结束属性(Access = ?ClassC) Prop2结束结束

Prop1

  • ClassA而且ClassB有机会接触到Prop1

  • 的所有子类ClassA而且ClassB有机会接触到Prop1

  • 的子类不会继承访问列表PropertyAccess没有接触到吗Prop1除非它们显式地定义了访问权限。

Prop2

  • ClassC有get和set访问权限吗Prop2

  • 的所有子类ClassC有get和set访问权限吗Prop2

  • 的子类不会继承访问列表PropertyAccess没有访问权限Prop2除非它们显式地定义了访问权限。

相关的话题

Baidu
map