hayu's 개발 일지

[TIL]240630 패키지(package)(2) 본문

기술/java

[TIL]240630 패키지(package)(2)

hayu00 2024. 6. 30. 21:07

공부한 내용

패키지와 계층 구조

패키지는 보통 다음과 같이 계층 구조를 이룬다.

  • a
    • b
    • c

이렇게 하면 다음과 같이 총 3개의 패키지가 존재한다. a , a.b , a.c

  • 계층 구조상 a 패키지 하위에 a.b 패키지와 a.c 패키지가 있다.
  • 그런데 이것은 우리 눈에 보기에 계층 구조를 이룰 뿐이다. a 패키지와 a.b , a.c 패키지는 서로 완전히 다른 패키지이다.
  • 따라서 a 패키지의 클래스에서 a.b 패키지의 클래스가 필요하면 import 해서 사용해야 한다. 반대도 물론 마찬가지이다.
  • 정리하면 패키지가 계층 구조를 이루더라도 모든 패키지는 서로 다른 패키지이다.
  • 물론 사람이 이해하기 쉽게 계층 구조를 잘 활용해서 패키지를 분류하는 것은 좋다. 참고로 카테고리는 보통 큰 분류에서 세세한 분류로 점점 나누어진다. 패키지도 마찬가지이다.

패키지 추가하기

클래스의 전체 이름은 "패키지명 + 클래스명"인데

패키지가 상,하위로 구분되어 있다면 도트( . )를 사용해서 다음과 같이 표현한다.

상위패키지.하위패키지.클래스

패키지 추가하기 예시)

Car 클래스가 com.mycompany 패키지에 속해 있다면,

  • Car 클래스의 전체 이름 -> com.mycompany.Car
  • 실제 파일 시스템 -> com\mycompany 폴더에 Car.class가 위치한다.

예를 들어 Car 클래스가 com.mycompany 패키지에 소속되어 있을 경우,

파일 시스템 com\yourcompany 폴더에 강제로 Car.class를 이동하면 Car 클래스를 사용할 수 없다.

  • ❗❗ 클래스만 따로 복사해서 다른 패키지로 이동하면 클래스는 사용할 수 없다.
    • 즉, 클래스를 이동할 경우에는 패키지 전체를 이동시켜야 한다.

패키지 - 활용

전체 구조도

  • com.helloshop
    • user
      • User
      • UserService
    • product
      • Product
      • ProductService
    • order
      • Order
      • OrderService
      • OrderHistory

 

 

회고

- 자바에 대한 공부기 부족하다는 사실을 깨닫고 다시한번 차근차근 공부하기로 했다. 

 

참고 자료

- https://velog.io/@hyun_ha/JAVA-%ED%8C%A8%ED%82%A4%EC%A7%80Package