主要内容

可变和不可变属性

设置对属性值的访问权限

属性 SetAccess 特性使您能够确定在什么条件下代码可以修改对象属性值。有四个级别的设置访问权限,它们提供不同程度的对象属性值访问权限:

  • SetAccess = public - 任何有权访问对象的代码都可以设置公共属性值。在修改对象属性时,句柄类和值类的行为存在差异。

  • SetAccess = protected - 只有从类方法或子类方法中执行的代码才能设置属性值。除非类或其任何子类定义了执行此操作的方法,否则您无法更改对象属性的值。

  • SetAccess = private - 只有定义类才能设置属性值。仅当类定义设置了属性的方法时,您才能更改对象属性的值。

  • SetAccess = immutable - 属性值在构造函数中设置。在创建对象后,您无法更改不可变属性的值。作为默认值或在类构造函数中设置属性的值。您不能为不可变属性定义属性 set 方法 (set.PropertyName)。

要了解相关信息,请参阅Properties Containing Objects

定义不可变属性

在此类定义中,只有 Immute 类构造函数可以设置 CurrentDate 属性的值:

classdef Immute
   properties (SetAccess = immutable)
      CurrentDate
   end
   methods
      function obj = Immute
         obj.CurrentDate = datetime("today");
      end
   end
end
a = Immute
a = 

  Immute with properties:

    CurrentDate: 09-Jun-2022

另请参阅

主题