Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

クラスのインポート

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

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

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

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

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

静的メソッドのインポート

import を使用して静的メソッドをインポートすると、クラス名を使用せずにこのメソッドを呼び出せるようになります。すべてのパッケージを含む完全クラス名と静的メソッド名を指定して import を呼び出します。

function myFunc
   import pkg.MyClass.MyStaticMethod 
   MyStaticMethod(arg,...); % call static method
end

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

import を使用してパッケージ関数をインポートすると、パッケージ名を使用せずにこれらの関数を呼び出せるようになります。パッケージおよび関数名を指定して import を呼び出します。

function myFunc
   import pkg.pkgFunction 
   pkgFunction(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

参考

関連するトピック