클래스 가져오기
클래스를 가져오는 구문
클래스 멤버에 대한 액세스를 단순화하기 위해 클래스를 함수로 가져올 수 있습니다. 예를 들어, 패키지에 클래스가 여러 개 포함되어 있고 함수에는 이 중 하나의 클래스만 사용하거나 정적 메서드를 사용한다고 가정하겠습니다. 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)
timedata
를 호출하면 클래스 메서드가 아니라 패키지 함수가 검색됩니다. MATLAB®이 import
를 적용하고 pkg.timedata
를 먼저 찾아 내기 때문입니다. 이름 충돌이 있는 상태에서 패키지를 가져올 계획이라면 패키지를 사용하지 마십시오.
가져오기 목록 지우기
함수 작업 공간에서는 가져오기 목록을 지울 수 없습니다. 기본 작업 공간만 지우려면 다음을 사용하십시오.
clear import