Main Content

ハンドル互換クラスのメソッド

ハンドル オブジェクトと値オブジェクトのメソッド

ハンドル互換クラスのメソッドに渡されるオブジェクトは、ハンドル オブジェクトか値オブジェクトのいずれかになります。ハンドルと値の両方で動作するクラスのメソッドを実装する場合に、2 種類の動作を検討しなければなりません。

  • 入力オブジェクトがハンドル オブジェクトであり、メソッドでこのハンドル オブジェクトを変更する場合、これらの変更は同じハンドルを含むすべてのワークスペースで見ることができます。

  • 入力オブジェクトが値オブジェクトである場合、メソッド内で作成されたオブジェクトへの変更はメソッドのワークスペース内の値にのみ影響します。

ハンドル互換メソッドは通常、入力オブジェクトを変更しません。このような変更の効果がハンドル オブジェクトと非ハンドル オブジェクトで同じでないためです。

ハンドル オブジェクトと値オブジェクトの変更については、オブジェクトの変更を参照してください。

メソッド内の値オブジェクトの変更

メソッドがハンドル オブジェクトと値オブジェクトの両方で動作する場合、メソッドは変更されたオブジェクトを返します。たとえば、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

関連するトピック