class 및 interface들의 모임.
같은 이름의 class가 하나의 package 안에 존재하는건 안되지만, 다른 package에 존재하는 것은 괜찮다.
모든 class의 full name은 package 이름을 앞에 포함한다. 예를들어 String
class의 full name은 java.lang.String
이다.
보통 물리적인 directory 하나가 package 하나로 취급된다. .class
file 하나가 class 하나로 취급되는 것처럼 말이다.
source file에서 딱 한번만, 본인이 속할 package를 첫 문장에서 선언할 수 있다.
package yolo
모든 class는 반드시 하나의 package에 속해야 한다.
.
이 있는걸 보면 알겠지만 .
을 기준으로 계층 구조가 이루어진다.
사용할 특정 package 내 class를 full name을 사용하지 않고 class 이름만으로 사용하려 할 때 쓰인다.
package 선언 이후에 보통 집어넣는다. 여러개를 집어 넣어도 된다.
구체적으로 사용할 class를 콕 집어서 import하는 것도 되고, package 안의 전체 class들을 집어넣는 것도 가능하다. 밑의 첫번째 줄이 전자, 두번째 줄이 후자. 둘의 실행상 성능 차이는 없고 컴파일 시간만 약간 더 차이날 수 있다.
import java.util.Calendar;
import java.text.*;
import java.lang.*;
import static java.lang.Math.random;
import static java.lang.System.out;
class Test {
public static void main(String[] args) {
out.println(random());
}
}