패키지 선언
- 자바 소스 파일(.java)이 컴파일되어 생기는 클래스 파일(.class)은 반드시 패키지에 소속되어야 함
- 클래스가 소속될 패키지명은 package 키워드를 사용하여 소스 파일의 첫 줄에 선언
package 패키지명;
package UI; //Tools 클래스를 컴파일하여 UI 패키지에 저장
public class Tools{ //Tools 클래스의 경로명-> UI.Tools
...
}
//UI 패키지의 Tools 클래스 예시
- Tools.java 파일이 컴파일된 Tools.class 파일은 UI 디렉터리에 저장
- Tools 클래스(Tools.class) 파일의 경로명은 UI.Tools
- 다름 패키지에 있는 클래스에서 Tools 클래스를 사용하려면 import문 필요
*import문: 다른 패키지에 있는 클래스를 사용하고자 할 때 컴파일러에게 해당 클래스의 경로명을 알려주는 문장
import UI.Tools;
package Graphic; //Line 클래스를 Graphic 패키지에 저장
import UI.Tools; //Tools의 클래스 import
public class Line{
public void draw(){
Tools t = new Tools(); //다른 패키지의 Tools 사용 가능
}
}
//Tools를 import하여 사용하는 Graphic 패키지의 Line 클래스 예시
이클립스로 쉽게 패키지 만들기
- 우클릭하고 new>package 해서 만들면 된다
디폴트 패키지
- 패키지 선언문 없이 만들어진 클래스의 패키지
- 디폴트 패키지는 현제 디렉터리
패키지 특징
1. 패키지 계층 구조
- 서로 관련 있는 클래스 파일을 하나의 패키지로 계층화
- 관리 용이
2. 패키지 별 접근 제한
- 패키지에 포함된 클래스들끼리는 자유롭게 접근
- 다른 패키지의 클래스들은 접근 차단
- 패키지를 접근 권한의 범위로 이용 가능
3. 동일한 이름의 클래스를 다른 패키지에 작성 가능
- 같은 패키지 내에서 동일한 이름의 클래스나 인터페이스 존재 불가
- 다른 패키지에서는 가능(클래스 이름은 패키지명을 포함한 전체 경로명을 사용하므로 패키지가 달라지면 경로명이 달라짐)
- 다른 디렉터리에 있으므로 서로 다른 파일로 인지
4. 소프트웨어 재사용성 향상
- 같거나 유사한 기능을 수행하는 클래스나 인터페이스를 재작성하지 않고 import하여 사용
'java > 개념' 카테고리의 다른 글
JDK에서 제공하는 패키지 (0) | 2024.06.02 |
---|---|
모듈 (0) | 2024.06.02 |
import와 클래스 경로 (0) | 2024.05.23 |
패키지(package) (0) | 2024.05.23 |
인터페이스(interface) (0) | 2024.05.23 |