IT 정보/자바/JSP/EJB

[자바자격증/SCJP/자바학원/SCJP자격증] 패키지의 사용법

김윤석 2007. 12. 28. 16:26

나. 패키지의 사용법 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