[Java 기본] 5. 패키지
by Hi.Claire반응형
🖥️ 김영한의 실전 자바 - 기본편 (김영한, 인프런)
섹션5. 패키지
5-1. 패키지(package)
패키지(package)
컴퓨터는 보통 파일을 분류하기 위해 폴더, 디렉토리라는 개념을 제공한다.
자바도 이런 개념을 제공하는데 이것이 바로 패키지(package)이다.
(예시) 패키지와 클래스
- user
- User.java
- UserManager.java
- UserHistory.java
- product
- Product.java
- ProductCatalog.java
- ProductImage.java
- order
- Order.java
- OrderService.java
- OrderHistory.java
- cart
- ShoppingCart.java
- CartItem.java
- payment
- Payment.java
- PaymentHistory.java
- shipping
- Shipment.java
- ShipmentTracker.java
5-2. import
한 클래스에서 다른 패키지에 있는 클래스를 사용할 때에는 패키지 전체 경로를 포함한 클래스를 적어주어야 한다.
하지만 항상 이렇게 사용하는 것이 불편하므로 import를 사용한다.
import를 사용하면 다른 패키지에 있는 클래스를 가져와서 사용할 수 있다.
(예시) import 사용
package pack;
import pack.a.User;
public class PackageMain1 {
public static void main(String[] args) {
Data data = new Data();
User user = new User();
}
}
PackageMain1과 같은 pack 패키지에 있는 Data 클래스의 생성자를 호출할 때에는 패키지 경로를 생략할 수 있다.
하지만 pack.a 패키지에 있는 User 클래스의 생성자를 호출할 때에는 import를 사용해야 한다.
(참고) 특정 패키지에 있는 모든 클래스를 포함해서 사용하고 싶으면 import 시점에 *을 사용한다.
package pack;
import pack.a.*; // pack.a의 모든 클래스 사용
public class PackageMain1 {
public static void main(String[] args) {
Data data = new Data();
User user = new User();
}
}
패키지 pack Data 생성
패키지 pack.a User 생성
클래스 이름 중복
- 패키지 덕분에 클래스 이름이 같아도 패키지 이름으로 구분해서 같은 이름의 클래스를 사용할 수 있다.
- 이때, 같은 이름의 클래스를 둘 다 사용하고 싶으면 자주 사용하는 클래스를 import하고 나머지는 패키지를 포함한 전체 경로를 적어주면 된다.
(예시) 클래스 이름 중복
package pack;
import pack.a.User;
public class PackageMain2 {
public static void main(String[] args) {
User userA = new User();
pack.b.User userB = new pack.b.User();
}
}
패키지 pack.a User 생성
패키지 pack.b User 생성
5-3. 패키지 규칙
패키지 규칙
- 패키지의 이름과 위치는 폴더(디렉토리)의 위치와 같아야 한다.
- 패키지 이름은 모두 소문자를 사용한다. (관례)
- 패키지 이름의 앞 부분에는 일반적으로 회사의 도메인 이름을 거꾸로 사용한다. (관례)
- (예시) com.tistory.moominie
- 패키지는 보통 계층 구조를 이루는데, 이렇게 계층 구조를 이루더라도 모든 패키지는 서로 다른 패키지이다.
- (예시) pack, pack.a, pack.b 세 개는 서로 완전히 다른 패키지이다. 따라서 pack 패키지에서 pack.a 패키지의 클래스가 필요하면 따로 import해서 사용해야 한다. 반대도 마찬가지다.
- 패키지를 구성할 때 서로 관련된 클래스는 하나의 패키지에 모으고, 관련이 적은 클래스는 다른 패키지로 분류하는 것이 좋다.
반응형
'☕️ Java > 김영한의 실전 자바 - 기본편' 카테고리의 다른 글
[Java 기본] 6. 접근 제어자 (1) | 2024.09.16 |
---|---|
[Java 기본] 4. 생성자 (2) | 2024.09.16 |
[Java 기본] 3. 객체 지향 프로그래밍 (0) | 2024.08.26 |
[Java 기본] 2. 기본형과 참조형 (0) | 2024.08.25 |
[Java 기본] 1. 클래스와 데이터 (0) | 2024.08.25 |
블로그의 정보
Claire's Study Note
Hi.Claire