exponenta event banner

Изменяемые и неизменяемые свойства

Задать доступ к значениям свойств

Собственность SetAccess позволяет определить, при каких условиях код может изменять значения свойств объекта. Существует четыре уровня доступа к набору, которые обеспечивают различную степень доступа к значениям свойств объекта:

  • SetAccess = public - Любой код, имеющий доступ к объекту, может задавать значения общих свойств. Существуют различия между поведением классов дескрипторов и значений в отношении изменения свойств объекта.

  • SetAccess = protected - Только код, выполняющийся из методов классов или методов подклассов, может устанавливать значения свойств. Нельзя изменить значение свойства объекта, если класс или любой из его подклассов не определяет метод для этого.

  • SetAccess = private - Только определяющий класс может устанавливать значения свойств. Изменить значение свойства объекта можно только в том случае, если класс определяет метод, задающий свойство.

  • SetAccess = immutable - Значение свойства устанавливается во время построения. После создания объекта изменить значение неизменяемого свойства невозможно. Задайте значение свойства как значение по умолчанию или в конструкторе класса. Невозможно определить метод набора свойств (set.PropertyName) для неизменяемого свойства.

Дополнительные сведения см. в разделе Свойства, содержащие объекты.

Определение неизменяемого свойства

В этом определении класса только Immute конструктор класса может установить значение CurrentDate свойство:

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

  Immute with properties:

    CurrentDate: '19-Oct-2005'

Связанные темы