3. package와 import
3-1 패키지(package)
- 하나의 소스파일에는 첫 번째 문장으로 단 한번의 패키지 선언만을 허용한다.
- 모든 클래스는 반드시 하나의 패키지의 속해야 한다.
- 패키지는 점(.)을 구분자로 하여 계층구조로 구성할 수 있다.
- 패키지는 물리적으로 클래스 파일(.class)을 포함하는 하나의 디렉토리이다.
ex) java.lang.String에서 lang은 디렉토리 String이 클래스
3-3 import문
클래스 작성 전에 import문으로 사용하고자 하는 클래스의 패키지를 미리 명시해주면 소스코드에 사용되는 클래스이름에서 패키지명은 생략할 수 있다.
컴파일 시 컴파일러는 import문을 통해 소스파일에 사용된 클래스들의 패키지를 알아 낸 다음, 모든 클래스이름 앞에 패키지명을 붙여 준다.
이클립스에서는 단축키 'ctrl+shift+o'를 누르면 자동으로 import문이 추가된다.
3-4 import문의 선언
모든 소스파일(.java)에서 import문은 package다음, 클래스 선언문 이전에 위치해야 한다.
package와 달리 여러 번 선언할 수 있다.
일반적인 소스파일(*.java)의 구성은 다음의 순서로 되어 있다.
1.package문
2.import문
3.클래스 선언
import문을 선언하는 방법은 다음과 같다.
import 패키지명.클래스명;
또는
import 패키지명.*;
클래스이름을 지정해주는 대신 '*'을 사용하면, 컴파일러가 패키지에서 일치하는 클래스이름을 찾아 컴파일 시에 적용시킨다. 실행 시 성능상의 차이는 전혀 없다.
3-5 static import문
static멤버를 호출할 때 클래스 이름을 생략할 수 있다. 특정 클래스의 static멤버를 사용할때 좋다.
ex)
import static java.lang.Integer.*; // Integer클래스의 모든 static 메서드
import static java.lang.Math.random; // Math.random()만. 괄호 안붙임. -> random()
import static.java.lang.System.out; // System.out을 out만으로 참조가능 -> out
System.out.println(Math.random()); <-> out.println(random());
'java > 요약정리' 카테고리의 다른 글
자바의 정석 7장 (5) 다형성(polymorphism) (0) | 2018.07.06 |
---|---|
자바의 정석 7장(4) 제어자(modifier) (0) | 2018.07.06 |
자바의 정석 7장(2) 오버라이딩(Overriding) (0) | 2018.07.06 |
자바의 정석 7장(1) 상속(inheritance) (0) | 2018.07.05 |
자바의 정석 6장(5) 변수의 초기화 (0) | 2018.07.05 |