1.package 키워드
자바에서 패키지란 클래스와 인터페이스의 집합을 의미한다 . 서로 관련이 있는 클래스나 인터페이스를 함께 묶음으로써 파일을 효율적으로 관리할 수 있게 된다. 또한 ,협업 시 서로 작업한 클래스 사이에서 발생할 수 있는 이름 충돌 문제까지도 패키지를 이용하면 피할 수 있다.
자바에서 패키지는 물리적으로 하나의 디렉터리를 의미한다. 따라서 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함되어 있다. 이러한 패키지는 다른 패키지를 포함할 수 있으며 , 이때 디렉터리의 계층구조는 점으로 구분된다.
java.lang.String <- String 클래스는 java.lang 패키지에 속한 클래스이다.
- 패키지의 선언
자바에서 패키지를 선언하는 방법은 다음과 같다.
package 패키지이름;
위와 같은 명령문을 클래스나 인터페이스의 소스 파일에 추가하기만 하면 된다 . 이때 패키지 이름에는 패키지의 경로까지 포함한 풀 네임을 명시해야 한다.
-이름 없는 패키지(unnamed package)
자바의 모든 클래스는 반드시 하나 이상의 패키지에 포함되야 한다.
하지만 자바 컴파일러는 소스 파일에 어떠한 패키지의 선언도 포함되지 않으면 ,기본적으로 이름 없는 패키지에 포함해 컴파일한다 . 따라서 패키지를 명시하지 않은 모든 클래스와 인터페이스는 모두 같은 패키지에 포함되게 된다.
- import문
클래스를 사용할 때마다 매번 이렇게 긴 이름을 사용하는 것은 비효율적이므로 , 자바에서는 import 키워드를 별도로 제공하고 있다. import 문은 자바 컴파일러에 코드에서 사용할 클래스의 패키지에 대한 정보를 미리 제공하는 역할을 한다. 따라서 import 문을 사용하면 다른 패키지에 속한 클래스를 패키지 이름을 제외한 클래스 이름만으로 사용할 수 있게 된다.
package test.test2;
import test.test1.ImportFormOne;
public class ImportFromTwo {
ImportFormOne importFormOne = new ImportFormOne();
}
위의 예제 처럼 import 문이 사용되어 패키지 이름을 제외한 클래스 이름만으로 사용할 수 있다.
-import 문의 선언
//해당 패키즈의 특정 클래스를 사용하고 싶으면 클래스 명을 적어준다.
import java.lang.String;
//해당 패키지의 모든 클래스를 사용하고 싶으면 *을 적는다
import java.lang.*;
* 보통 IntelliJ 나 eclipes 같은 IDE 에서는 auto import 기능을 가지고 있어 원하는 클래스를 명시하면 자동으로 import가 된다.
-import 문의 특징
import 문을 선언할 때 별표를 사용하는 것이 해당 패키지에 포함된 다른 모든 하위 패키지의 클래스까지 포함해 주는 것은 아니다 .
//아래 두 패키지의 최상위 패키지는 java이다
import java.awt.*;
import java.util.*;
//위와 같은 두개의 import 문을 아래와 같이 표현할 수는 없다.
import java.*;
또한 자바에서 가장 많이 사용되는 java.lang 패키지에 대해서는 import 문을 사용하지 않아도 클래스 이름만으로 사용할 수 있도록 해주고 있다 .
'JAVA' 카테고리의 다른 글
JAVA 스터디 14 - 인터페이스 (0) | 2021.03.24 |
---|---|
JAVA 스터디 13 - 접근제어자 (0) | 2021.03.23 |
JAVA 스터디 11 - Object 클래스 (0) | 2021.03.18 |
JAVA 스터디 10 - final (0) | 2021.03.18 |
JAVA 스터디 9 - 추상 클래스와 추상메서드 (0) | 2021.03.18 |