Package와 Import
패키지
관련된 클래스들을 관리하기 위해 묶어 놓은 것이다. 클래스의 이름이 같아도 다른 패키지에 속하면 패키지 명으로 구분이 가능하므로 충돌을 피할 수 있다. 클래스가 하나의 ".class" 파일인 것과 같이 패키지는 하나의 물리적인 디렉토리이다. 소스 파일의 첫 번째 줄에 선언되어야 하며 모든 클래스는 하나의 패키지에 속해야 한다.
- 클래스와의 혼동을 막기 위해 패키지는 소문자로 이름을 짓는 것이 일반적이다.
- 패키지도 다른 패키지를 포함하는 게 가능하며 "."으로 구분된다.
- 소스파일 작성 시 패키지 선언을 하지 않을 경우 자동으로 unamed package에 속하게 된다.
패키지를 생성한 뒤에는 패키지 루트 디렉토리를 클래스 패스에 포함시키는 것을 잊지 말자!
import 문
클래스 사용 시, 패키지 명을 생략할 수 있도록 해준다.
- 일일이 패키지 명을 입력하지 않아도 된다!
import 패키지명.클래스명;
OR
import 패키지명.*; // 패키지에 속한 모든 클래스를 전부 가져 온다는 뜻이다.
java.lang 패키지의 클래스들이 패키지명 없이 사용할 수 있었던 이유는, 암묵적으로 import 문이 선언되기 때문이다. 자주 쓰이는 중요한 클래스들이 속한 패키지이기 때문에 import문으로 불러오지 않아도 사용이 가능한 것이다.
static import 문
static import를 사용하게 되면 해당 클래스의 static 멤버를 호출할 때, 클래스 이름을 생략할 수 있다. 자바에서 종종 써왔던 Math 클래스를 예로 들어보자.
import static java.lang.Math.*;
class Main {
public static void main(String[] args) {
System.out.println(random());
}
}
Math.random()으로 작성해왔지만, static import문을 사용하였기 때문에 Math클래스의 static 멤버들을 호출할 때 클래스 이름인 "Math"를 생략할 수 있다.
'Study > Java' 카테고리의 다른 글
[Java] 다형성 (0) | 2020.03.13 |
---|---|
[Java] 자바의 제어자 (0) | 2020.03.12 |
[Java] 오버라이딩 (0) | 2020.03.12 |
[Java] 자바의 상속 (0) | 2020.03.12 |