メインコンテンツ

クラス定義ファイル内の関数

スクリプト ファイルや関数ファイルでローカル関数を定義できるように、classdef ファイル内でもローカル関数を定義できます。classdef ブロックの外部 (ただしクラス定義と同じファイル内) にこれらの関数を定義します。これらの関数は同じファイル内の任意の場所から呼び出すことができますが、定義したファイルの外部では表示されません。

classdef ファイル内のローカル関数は、そのファイル内のみで使用するユーティリティ関数で役立ちます。たとえば、次のコードでは、classdef ブロックの外部に myUtilityFcn を定義しています。

classdef MyClass
   properties
      PropName
   end
   methods
      function obj = method1(val)
         adjustedVal = myUtilityFcn(val)
         ...
      end 
   end 
end % End of classdef

function out = myUtilityFcn(in)
   ...
end

MyClassmethod1 を呼び出すと、メソッドはまず myUtilityFcn を使用して入力引数に対して前処理を実行してから、他のアクションを実行します。

メソッドとは異なり、これらの関数では入力としてクラスのインスタンスは不要ですが、クラスのインスタンスである引数を受け取ったり返したりし、プライベート メンバーなどのそれらのインスタンスのメンバーにアクセスできます。ただし、クラス定義ファイル内の関数でクラス メンバーに直接アクセスできる必要がある場合は、代わりにクラスのメソッドとして関数を定義することを検討してください。

参考

トピック