Matlab中属性特性

目录

属性特性

属性特性的目的

指定属性特性

属性特性表


属性特性

属性特性的目的

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

指定属性特性

        在 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

逻辑值

默认值为 false

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

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

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

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

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

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

  • 枚举,默认值为 public

  • meta.class 对象

  • meta.class 对象的元胞数组

使用 Access 将 SetAccess 和 GetAccess 设置为相同的值。直接查询 SetAccess 和 GetAccess 的值(非 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 方法返回的值。

  • 按需计算数据

  • 属性get方法

  • Avoid Property Initialization Order Dependency

GetAccess

枚举

默认值为 public

public - 不受限制的访问

protected - 从类或子类进行访问

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

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

  • 单个 meta.class 对象

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

对于 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对象:

  • 单个 meta.class 对象

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

参考类成员访问

SetObservable

逻辑值

默认值为 false

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

Transient

逻辑值

默认值为 false

如果设置为 true,则在将对象保存到文件时不会保存属性值。

框架特性

使用特定框架基类的类具有特定于框架的特性。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值