패키지(Package)
- 서로 관려된 클래스의 묶음
- 클래스는 클래스 파일(*.class)
- 패키지는 폴더, 하위 패키지는 하위 폴더
- 클래스의 실제 이름은 패키지를 포함 (java.lang.String)
- rt.jar는 클래스들을 묶어 압축한 파일로 풀면 rt\java\lang\String.class
rt : runtime(실행 중)
rt.jar는 Java9부터 Module 개념으로 대체 되어 사용하지 않음
클래스 패스(class path)



- 클래스 파일(*.class)의 위치를 알려주는 경로(path)
- 환경변수 classpath로 관리하며, 경로자간의 구분은 ';'를 사용
- 환경변수 classpath에 패키지의 루트를 등록
import문
import 패키지.클래스;
import 패키지.*;
import java.util.Date;
class ImportTest1 {
java.util.Date today = new java.util.Date();
}
class ImportTest2 {
Date today = new Date();
}
- 클래스를 사용할 때 패키지 이름 생략 가능
- 컴파일러에게 클래스가 속한 패키지 알려줌
- java.lang 패키지(String, Object, System, Thread...)의 클래스는 기본 패키지이므로 import 하지 않고 사용 가능
- ①패키지문과 ③클래스 선언 사이에 선언
import java.*; // ERROR:패키지는 * 사용 불가
import static java.lang.Integer.*; // Integer클래스의 모든 static 멤버
import static java.lang.Math.random; // 괄호 안 붙임
import static java.lang.System.out; // out만으로 참조 가능
out.println(random()); // out:static variable
- static 멤버를 사용할 때 클래스 이름 생략할 수 있게 해줌