프로그램이 커져 많은 클래스들이 산재해 있다면 보기에도 어렵고, 개발하기 불편할 것이다. 그래서 이를 체계적으로 정리하기 위한 패키지에 대해 공부했다. 컴퓨터에서 일반 폴더와 거의 같은 개념이다.
패키지
예를 들어 pack.a 패키지에 User라는 클래스가 있다고 하자. 해당 클래스를 사용하기 위해서는 다음과 같이 코드를 작성해야 한다.
pack.a.User user = new pack.a.User();
이 방식은 타이핑 하기도 어렵고, 오타가 발생할 가능성이 높다. 그래서 이를 import로 간단하게 할 수 있다.
- import 사용
package pack;
import pack.a.User;
public class PackageMain2 {
public static void main(String[] args) {
User user = new User(); //import 사용으로 패키지 명 생략 가능
}
}
패키지 규칙
- 패키지의 이름과 위치는 폴더(디렉토리) 위치와 같아야 한다. (필수)
- 패키지 이름은 모두 소문자를 사용한다. (관례)
- 패키지 이름의 앞 부분에는 일반적으로 회사의 도메인 이름을 거꾸로 사용한다. 예를 들어,com.company.myapp 과 같이 사용한다. (관례)
- 이 부분은 필수는 아니다. 하지만 수 많은 외부 라이브러리가 함께 사용되면 같은 패키지에 같은 클래스 이름이 존재할 수도 있다.
- 이렇게 도메인 이름을 거꾸로 사용하면 이런 문제를 방지할 수 있다.
- 내가 오픈소스나 라이브러리를 만들어서 외부에 제공한다면 꼭 지키는 것이 좋다.
- 내가 만든 애플리케이션을 다른 곳에 공유하지 않고, 직접 배포한다면 보통 문제가 되지 않는다.
패키지와 계층 구조
일반적인 패키지 계층 구조는 다음과 같다.
- a
- b
- c
여기서 주의해야할 점은 a 패키지 ≠ a.b 패키지 이고, a 패키지 ≠ a.c 패키지 라는 것이다. 우리가 보기에는 b, c 가 a의 하위에 있는 것처럼 보이지만, 실제로 다 다른 패키지이다. 따라서 a 패키지 따로 import, a.b 패키지 따로 import, a.c 패키지 따로 import 해야한다.
Reference
인프런 '김영한의 실전 자바 - 기본편'
'Dev Language > Java' 카테고리의 다른 글
[자바/기본] 7. 자바 메모리 구조와 final (0) | 2024.01.16 |
---|---|
[자바/기본] 6. 접근 제어자 (0) | 2024.01.16 |
[자바/기본] 4. 생성자 (0) | 2024.01.04 |
[자바/기본] 3. 객체지향 프로그래밍 (0) | 2024.01.04 |
[자바/기본] 2. 기본형과 참조형 (0) | 2024.01.04 |