외부 패키지의 클래스를 불러 사용하고자 할 경우 원래는 클래스명 앞에 패키지를 명시해야 한다. 예를 들어서 Random이라는 클래스가 java.util 패키지에 속해 있다. 이것을 불러 사용하려면 다음과 같이 해야 한다.


java.util.Random rand = new java.util.Random();


즉, Random 클래스 앞에 java.util 이라는 소속 패키지의 이름을 명시해야 하는데 여러 군데에서 Random클래스가 사용된다면 패키지 이름이 중복되어 불편한다. 그래서 import 명령을 사용하면 클래스가 속한 패키지 명을 생략할 수 있다.


package tut_20;

import java.util.Random;

public class Tut_20 {
   public static void main(String[] args) {
       Random rand = new Random();
   }
}


이와 같이 import 뒤에 패키지명을 포함한 클래스의 전체 경로를 명시해 주면 코드에서는 클래스 이름만 써주면 된다.


 만약 java.util.Data 라는 클래스를 사용하고 싶다면 import 문을 하나 더 추가하면 된다.


package tut_20;

import java.util.Random;
import java.util.Date;

public class Tut_20 {
   public static void main(String[] args) {
       Random rand = new Random();
       Date dt = new Date();
   }
}


이런 식으로 현재 파일에서 사용하는 외부 클래스는 얼마든지 import문으로 불러와서 사용할 수 있다.


 동일한 패키지의 모든 클래스를 불러오고 싶다면 와일드카드(*)문자를 사용하면 된다. 예를 들어서 java.util 패지키의 모든 클래스를 불러오고 싶다면 다음과 같이 하면 된다.


import java.util.*;


이렇게 하면 java.util 패키지의 모든 클래스를 사용할 수 있다.


package tut_20;

import java.util.*;

public class Tut_20 {
   public static void main(String[] args) {
       Random rand = new Random();
       Date dt = new Date();
       List<Long> al = new List<>();
   }
}


이 예에서 Random, Data, List 클래스는 모두 java.util 패키지에 속해 있으르모 하나의 import 문으로 충분하다. 하지만 와일드카드를 사용한 import 가 하위 패키지의 클래스까지는 포함하지 않는다는 점에 유의해야 한다.


 같은 패키지 내의 클래스는 import를 할 필요가 없이 바로 사용 가능하다. 그리고 java.lang 패키지의 클래스도 import할 필요가 없다. 따라서 String 클래스는 java.lang 패키지 내에 있지만 import하지 않아도 바도 사용할 수 있는 것이다.



Posted by 살레시오