[자바자격증/SCJP/자바학원/SCJP자격증] 패키지의 사용법
나. 패키지의 사용법 – import
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
자바 프로그램에서는 어떤 클래스를 사용하기 위해 import 문을 사용하여 현재 프로그램에 포함해 주어야 합니다. 클래스를 포함하기 위해 import 문 다음에 패키지 이름과 클래스 이름을 기술해 주어야 하는데, 이 때 다음과 같이 두 가지 방법을 사용할 수 있습니다.
l 특정 클래스 포함하기
import 패키지이름.클래스이름;
예)
import java.applet.Applet;
import java.util.Vector;
l 패키지 내의 모든 클래스 포함하기
import 패키지이름.*;
예)
import java.awt.*;
import java.io.*;
위와 같이, 어떤 패키지내의 특정 클래스를 사용하기 위해 포함할 경우에는 패키지의 이름과 클래스의 이름을 모두 지정해 주면 되고, 어떤 패키지내의 모든 클래스를 사용하고자 할 경우에는 클래스의 이름 부분에 와일드카드 ‘*’을 사용하여 지정해 주면 됩니다. 이 때, “import java.awt.*;”와 같이 사용했을 경우 java.awt 패키지에 속한 모든 클래스들은 포함하지만, java.awt 패키지의 하위패키지에 있는 클래스들은 포함하지 못합니다. 예를 들어, java.awt 패키지에 속한 하위패키지인 java.awt.event 패키지 내의 모든 클래스들을 사용하기 위해서는, 다음과 같이 해 주어야 합니다.
l 패키지(java.awt)의 하위패키지(java.awt.event)를 포함할 경우
import java.awt.*;
import java.awt.event.*;
만약, 사용하고자 하는 클래스를 포함하였을 경우에는 그 클래스를 사용하기 위해 그 클래스의 이름만을 지정해 주면 되고, 그렇지 않고 클래스를 포함하지 않았을 경우에는, 사용할 때마다 패키지 이름과 클래스 이름을 모두 지정해 주어야 하는 번거로움이 있습니다.
l 특정 클래스(Applet 클래스)를 포함한 경우
import java.applet.Applet;
class TetrisApplet extends Applet {
…
}
l 특정 클래스(Applet 클래스)를 포함하지 않은 경우
class TetrisApplet extends java.applet.Applet {
…
}
다음에 나오는 자바 프로그램은 패키지를 사용하는 예를 보여주고 있습니다.
import java.lang.Thread; import java.awt.*; import java.awt.event.KeyEvent; // (b) class PackageTest { public static void main(String args[]) { System.out.println(new java.io.File("C:\\AUTOEXEC.BAT")); System.out.println(new java.lang.Thread()); System.out.println(new Thread()); System.out.println(KeyEvent.VK_A); // (a) // System.out.println(java.awt.event.KeyEvent.VK_A); // (c) } } /* * Results: (b) 부분을 주석처리한 경우 D:\AIIT\JAVA\05>javac PackageTest.java PackageTest.java:10: Undefined variable or class name: KeyEvent System.out.println(KeyEvent.VK_A); // (a) ^ 1 error D:\AIIT\JAVA\05> (b) 부분의 주석을 풀거나 또는 (a) 부분을 주석처리하고 (c) 부분의 주석을 푼 경우 D:\AIIT\JAVA\05>javac PackageTest.java D:\AIIT\JAVA\05>java PackageTest C:\AUTOEXEC.BAT Thread[Thread-0,5,main] Thread[Thread-1,5,main] 65 D:\AIIT\JAVA\05> */ |
<프로그램 1. PackageTest.java>
위의 자바프로그램에서 “import java.awt.*;”와 같이 사용하였을 경우, java.awt 패키지 내의 모든 public 클래스들을 사용할 수 있지만, java.awt 패키지에 속한 하위패키지의 클래스들은 불러들이지 못합니다. 따라서, 위에서와 같이 “import java.awt.event.*;” 문 또는 “import java.awt.event.KeyEvent;” 문을 이용하여 하위패키지의 클래스를 직접 포함해 주거나 또는 “KeyEvent.VK_A”를 “java.awt.event.KeyEvent.VK_A”와 같이 바꾸어주면 됩니다.
자바추천학원:
http://www.it-bank.or.kr/prom/java_main.htm