파일 여러개가 한 폴더에 뒤죽박죽 섞여 있을 때 파일들을 성격에 맞게 분류한 다음 새 폴더에 저장시키는 식으로 자바의 패키지도 이것과 완전히 동일한 개념이다. 패키지는 비슷한 성격의 자바 클래스들을 모아 놓은 자바의 디렉토리이다.
패키지 (Package)
예를 들어 HousePark, HouseKim 등의 클래스들은 house라는 패키지로 분류하면 편리할 것이다.
패키지를 생성하려면 src 디렉터리에서 우측마우스를 누르고 New -> Package 순으로 선택하면 된다. 그리고 패키지명에는 "house" 를 입력한다.
그리고 house 패키지로 이동하여 HouseKim, HousePark 클래스를 생성한다.
// house/HouseKim.java
package house;
public class HouseKim {
}
// house/HousePark.java
package house;
public class HousePark {
}
package 키워드는 이 파일이 어떤 패키지의 파일인지를 알려주는 역할을 한다.
서브패키지 (Subpackage)
house 패키지에서 다시 한번 New -> Package로 house.person 이라는 하위 패키지를 만든다.
그리고 person 패키지로 이동하여 EungYongPark 클래스를 생성한다.
// house/person/EungYongPark.java
package house.person;
public class EungYongPark {
}
※ src/house/person 디렉터리에서 New -> Java Class 를 선택하고 자바 클래스명에 EungYongPark이라고 입력하면 위와 같은 파일이 생성된다.
EungYongPark 클래스의 package가 house.person 으로 생성되었다. 이렇게 패키지는 도트(.)를 이용하여 하위 패키지를 표시한다. 여기서 house.person은 house 패키지의 서브패키지이다.
패키지 사용하기
다른 클래스에서 HouseKim 클래스를 사용하려면 다음과 같이 import 를 해야한다.
import house.HouseKim;
또는 다음과 같이 * 기호를 이용할 수도 있다.
import house.*;
만약 HouseKim과 동일한 패키지 내에 있는 클래스(예: HousePark)라면 HouseKim 클래스를 사용하기 위해서 import 를 따로 할 필요는 없다. 같은 패키지 내에서는 import 없이 사용이 가능하다.
패키지를 사용하는 이유
패키지를 사용하면 비슷한 성격의 클래스들끼리 묶을 수 있어 클래스의 분류가 용이하다. 그리고 자바코드를 작성하다 보면 다른 사람이 작성한 자바 클래스나 라이브러리를 사용해야 할 경우도 많이 생기는데 이 때 클래스명이 동일한 경우도 발생할 수 있을 것이다. 하지만 패키지명이 다르면 클래스명이 동일해도 충돌없이 사용할 수 있다. 따라서 배포용으로 작성하는 자바 클래스는 반드시 패키지명을 포함하는 것이 올바른 방법이다.
위 내용 패키지의 장점
- 클래스의 분류가 용이하다. (비슷한 것 끼리 묶는다)
- 패키지가 다르다면 동일한 클래스명을 사용할 수 있다.
'Language > Java' 카테고리의 다른 글
[Java] 정적(static) 변수와 메소드 (0) | 2022.08.04 |
---|---|
[Java] 접근제어자 (Access Modifier) (0) | 2022.08.04 |
[Java] 파일 입출력 (0) | 2022.08.04 |
[Java] 콘솔 입출력 (0) | 2022.08.04 |
[Java] 추상클래스 (0) | 2022.08.02 |