Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

클래스 가져오기

클래스를 가져오는 구문

클래스 멤버에 대한 액세스를 단순화하기 위해 클래스를 함수로 가져올 수 있습니다. 예를 들어, 패키지에 클래스가 여러 개 포함되어 있고 함수에는 이 중 하나의 클래스만 사용하거나 정적 메서드를 사용한다고 가정하겠습니다. 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

참고 항목

관련 항목