8.2 패키지 선언하기
•방법
: package 패키지 이름; 을 파일의 맨 처음에 넣으면 된다.
-> 반드시 첫 문장이어야 한다. (그래야 JVM이 확인 가능)
-패키지는 계층 구조가 될 수 있다.
ex) package pkg1.pkg2;
pkg1 패키지 안에 pkg2 패키지를 넣는다는 의미
-많은 자바 구현에서 계층적인 디렉터리 구조를 이용하여 소스 파일과 클래스 파일을 관리한다.
ex) Circle.java을 작성하였다면
<프로젝트 디렉터리>\graphics\Circle.java로 저장되어야 한다.
D:\test\
---> src\
---> graphics\
---> Circle.java
-마찬가지로 패키지의 구조를 반영한 디렉터리에 저장된다.
ex) <프로젝트 디렉터리>\graphics\Circle.class
D:\test\
---> bin\
---> graphics\
---> Circle.class
-패키지 선언문을 포함하는 소스 파일을 컴파일할 때는 다음과 같은 명령을 사용한다.
D:\test> javac -d . Circle.java
-d 옵션 뒤에는 출력 디렉터리를 적어준다.
여기서는 .을 찍어서 현재 디렉터리(D:\test)을 지정하였기 때문에 컴파일이 끝나고 남녀 패키지 계층 구조에 맞춰 디렉터리를 자동 생성해준다.
•생성 규칙
(1) 패키지의 이름은 일반적으로 소문자만을 사용한다.
(2) 패키지 이름으로 인터넷 도메인 이름의 역순을 사용한다.
"회사이름.부서이름.프로젝트이름"으로 짓는 경우가 많다.
(3) 자바 언어 자체의 패키지는 java나 javax로 시작한다.
=> 디폴트 패키지에 속하게 된다.
-디폴트 패키지는 이름이 없는 패키지로서 임시적인 프로그램을 작성할 경우에만 사용한다. (본격적인 프로그램 개발에는 이름 필수!!)
중간점검
1. Circle.java 파일을 util 패키지에 속하도록 하려면 어떤 문장을 맨 처음에 두어야 하는가?
: package util;
2. 패키지 이름을 짓는 일반적인 관례는 무엇인가?
: 인터넷 도메인 이름의 역순
3. 인터넷 도메인 이름이 hu.ac.kr이라면 권장되는 패키지 이름은?
: kr.ac.hu
4. 만약 패키지의 이름이 company.project와 같다면 소스 파일이 저장되는 디렉터리는?
company/project/
5. 만약 패키지의 이름이 company와 같다면 클래스 파일이 저장되는 디렉터리는?
company/project/