패키지
비슷한 도메인을 묶는 단위
코드 최상단에 package [패키지명] 을 적어주어야함
다른 패키지의 클래스를 사용하는 경우 [패키지명].[클래스명] 으로 사용할 수 있음
패키지 import
[패키지명].[클래스명] 을 전부 적어주어야 하는 것은 매우 불편한 일임
import [패키지명].[클래스명] 을 파일 상단에 적으면 해당 파일에서 [클래스명] 만 사용하여 다른 클래스를 자유롭게 사용할 수 있음
import [패키지명].* 을 파일 상단에 적으면 해당 패키지의 모든 클래스를 사용할 수 있음
클래스명이 동일한 두 클래스는 동시에 import 할 수 없음. (구분할 방법이 없음) 따라서, 하나는 import 해서 사용하더라도 다른 하나는 [패키지명].[클래스명] 으로 사용해야함.
패키지 규칙
패키지 구조는 해당 패키지의 폴더 구조와 동일해야한다. (필수)
패키지 이름은 모두 소문자를 사용한다. (관례)
패키지 이름의 앞 부분에는 일반적으로 회사의 도메인 이름을 거꾸로 사용한다. (관례)
EX) com.company.myapp
여러 외부 라이브러리를 함께 사용하게 되면 일반적인 이름으로 패키지를 구성할 경우 같은 패키지에 같은 클래스 이름을 가진 파일이 존재할 수도 있다.
오픈소스나 라이브러리로 외부에 제공할 경우 꼭 지키는 것이 좋다.
패키지와 계층 구조
패키지가 다음과 같은 계층 구조를 이룬다고 하자.
a
b
c
위와 같은 패키지 구조에서, a 패키지와 a.b / a.c 패키지는 완전히 다른 패키지이다.
다른 패키지이므로, 해당 패키지의 클래스를 사용하기 위해서는 import 해주어야 한다.