Objects passed to methods of handle compatible classes can be either handle or value objects. There are two different behaviors to consider when implementing methods for a class that operate on both handles and values:
If an input object is a handle object and the method alters the handle object, these changes are visible to all workspaces that contain the same handle.
If an input object is a value object, then changes to the object made inside the method affect only the value inside the method workspace.
Handle compatible methods generally do not alter input objects because the effects of such changes are not the same for handle and nonhandle objects.
See Object Modification for information about modifying handle and value objects.
If a method operates on both handle and value objects, the method must return the modified object. For example, the setTime
method returns the object it modifies:
classdef (HandleCompatible) Util % Utility class that adds a time stamp properties TimeStamp end methods function obj = setTime(obj) obj.TimeStamp = now; end end end