34.6.2 属性

所有类属性都必须在 properties 块中定义。属性的默认值定义是可选的,可以省略。每个类属性的默认初始值为 []

properties 块可以附加属性来指定访问权限或定义常量:

classdef some_class
  properties (Access = mode)
    prop1
  endproperties

  properties (SetAccess = mode, GetAccess = mode)
    prop2
  endproperties

  properties (Constant = true)
    prop3 = pi ()
  endproperties

  properties
    prop4 = 1337
  endproperties
endclassdef

其中 mode 可以是以下之一:

public(公共)

属性可以从任何地方访问。

private(私有)

属性只能从类方法中访问。该类的子类无法访问它们。

protected(受保护)

属性只能从类方法以及该类的子类中访问。

当创建 some_class 的对象时,prop1 具有默认值 [],对 prop1 的读写由同一个 mode 定义。对于 prop2,读取和写入访问权限可以分别设置。最后,prop3 是一个常量属性,只能在 properties 块中初始化一次。

默认情况下,在示例中的 prop4 处,属性不是常量,并且具有公共读写访问权限。

 
properties (obj)
properties (class_name)
proplist = properties (…)

显示或返回 classdef 对象 obj 或指定类 class_name 的公共属性。

如果请求输出值,则以元胞数组形式返回属性名称列表。

编程说明:仅当 GetAccess 属性为公共且 Hidden 属性为 false 时,才会返回属性名称。

另请参阅: methods


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-4