exponenta event banner

Методы обработки совместимых классов

Методы для объектов дескрипторов и значений

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

  • Если входной объект является объектом-дескриптором, и метод изменяет объект-дескриптор, эти изменения отображаются во всех рабочих областях, содержащих один и тот же дескриптор.

  • Если входной объект является объектом значения, то изменения, внесенные в объект в методе, влияют только на значение в рабочей области метода.

Методы, совместимые с дескрипторами, обычно не изменяют входные объекты, поскольку эффекты таких изменений не одинаковы для дескрипторов и нерабочих объектов.

Сведения об изменении объектов-дескрипторов и значений см. в разделе Изменение объекта.

Изменение объектов значений в методах

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

classdef (HandleCompatible) Util
   % Utility class that adds a time stamp
   properties
      TimeStamp
   end
   methods
      function obj = setTime(obj)
         obj.TimeStamp = now;
      end
   end
end

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