ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

クラスのインポート

クラスをインポートする構文

関数にクラスをインポートして、クラス メンバーへのアクセスを容易にします。たとえば、複数のクラスを含むパッケージがあり、関数ではこれらのクラスの 1 つのみ、あるいはさらにそのクラスの静的メソッドだけを使用する必要があるとします。import コマンドを使用してコードを簡略化します。いったんクラスをインポートすると、パッケージ名を参照する必要はなくなります。

function myFunc
   import pkg.cls1 
   obj = cls1(arg,...);                   % call cls1 constructor
   obj.Prop = cls1.staticMethod(arg,...); % call cls1 static method
end

pkg.* の構文を使用して、パッケージにあるすべてのクラスをインポートします。

function myFunc
   import pkg.* 
   obj1 = cls1(arg,...); % call pkg.cls1 constructor
   obj2 = cls2(arg,...); % call pkg.cls2 constructor
   a = pkgFunction();  % call package function named pkgFunction
end

パッケージ関数のインポート

import を使用してパッケージ関数をインポートします。

function myFunc
   import pkg.pkfcn 
   pkfcn(arg,...); % call imported package function
end

パッケージ関数とクラス メソッド名の競合

* ワイルドカード構文を使用してパッケージ全体をインポートしないでください。それによって、一連の未指定の名前がローカル スコープにインポートされます。たとえば、次のフォルダー構成があるとします。

+pkg/timedata.m          % package function
+pkg/@MyClass/MyClass.m  % class definition file
+pkg/@MyClass/timedata.m % class method

パッケージをインポートして、MyClass のインスタンスに timedata を呼び出します。

import pkg.*
myobj = pkg.MyClass;
timedata(myobj)

MATLAB®import を適用し、まず pkg.timedata を探すので、timedata の呼び出しではクラス メソッドではなくパッケージ関数が検索されます。名前の競合があり、パッケージをインポートする予定の場合は、パッケージは使用しないでください。

インポート リストの消去

関数ワークスペースからインポート リストを消去することはできません。ベース ワークスペースのみを消去するには、以下を使用します。

clear import

関連するトピック