package kh.academy; // package문
import java.util.Date; // import문
public class ImportTest { // 클래스 선언
public ststic void main(String[] args) {
}
}
서로 관련된 클래스 혹은 인터페이스의 묶음으로 폴더와 비슷하다.
패키지는 서브 패키지를 가질 수 있으며 ‘.’으로 구분한다.
소스파일 첫 번째 문장에 단 한 번 선언한다.
하나의 소스파일에 둘 이상의 클래스가 포함된 경우, 모두 같은 패키지에 속한다.
모든 클래스는 하나의 패키지에 속하며, 패키지가 선언되지 않은 클래스는 자동적으로 이름없는 패키지(default)에 속하게 된다.
ex) package java.util;
같은 패키지 내 클래스 사용
같은 패키지에 속한 클래스들은 조건 없이 다른 클래스를 사용 가능
다른 패키지 내 클래스 사용
사용할 클래스가 속한 패키지를 지정하는데 사용한다.
import문을 사용하면 클래스를 사용할 때 패키지 명을 생략할 수 있다.
java.lang 패키지의 모든 클래스는 import를 하지 않고도 사용 가능하다.
ex) String, Object, System, ...
import문은 패키지문과 클래스 선언 사이에 선언하며, 컴파일 시에 처리되므로 프로그램 성능에 영향을 주지 않는다.
지정된 패키지에 포함된 클래스는 import 가능하지만 서브 퍀지에 속한 모든 클래스까지는 불가능
ex) import java.util.Date;
import java.util.; // java.util 패키지 내의 모든 클래스(단, 서브클래스는 X)
import java.; // 불가능
이름이 같은 클래스가 속한 두 패키지를 import할 때는 클래스 앞에 패키지명을 붙여 구분해줘야 함
package kh.academy;
import java.sql.Date;
public class ImportTest {
public static void main(String[] args) {
java.util.Date today = new java.util.Date();
}
}