クラスのインポート
クラスをインポートする構文
関数にクラスをインポートして、クラス メンバーへのアクセスを容易にします。たとえば、複数のクラスを含むパッケージがあり、関数ではこれらのクラスの 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