반응형
Notice
Recent Posts
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Today
Total
관리 메뉴

오식랜드

[java] 패키지(Package)와 모듈(Module) 본문

dev-log/java

[java] 패키지(Package)와 모듈(Module)

개발하는 오식이 2023. 10. 16. 22:33
반응형

패키지의 필요성

  • 서로 관련 있는 클래스를 분류하여 관리 또는 접근을 용이하게 한다.
  • 기능은 다르나 이름은 같은 클래스가 존재할 경우, 패키지로 구분 가능해진다.
  • 호출 시에도 패키지 명이 앞에 붙어 구분에 용이하다

패키지

  • 계층적으로 구성
  • 계층 구분은 도트(.)
  • 패키지 별 접근 제한 가능
  • 서로 다른 패키지에 동일한 이름의 클래스 사용 가능
  • ex) java.util.Scanner : java.util = 패키지 명 / Scanner = 클래스 명

모듈 (Module)

  • 여러 패키지, 이미지 등의 자원을 모아놓은 컨테이너
  • 모듈 > 패키지 > 클래스 구조
  • 메모리 활용에 효율적
  • jmods 폴더에 자바 모듈이 존재

주요 모듈과 패키지

  1. java.base 모듈
    • java.lang
      • 패키지 명 없이 사용 가능
      • 문자열, 수학, 표준 입출력 등 지원
      • ex) System , String, Math 등
    • java.util
      • 일반적인 유틸리티
      • 날짜, 시간, 벡터, 해시맵 등
      • ex) Scanner, Collection 등
    • java.io
      • 입출력 지원
  2. java.desktop 모듈 (window application에서 사용)
    • java.awt : 기본적인 GUI
    • java.swing : 추가적인 GUI

사용법

방법 1

  • 필요 시 패키지 명을 포함한 클래스 이름 사용
  • 온전한 클래스 명을 사용하여 매번 언급이 필요할 땐 번거롭다
  • 1회성 사용에 좋다
java.util.Scanner s;
s = new java.util.Scanner(System.in);

방법2

  • 소스 코드 상단에 import 선언문 사용
  • import 이후에는 패키지 경로를 생략하고, 클래스 이름으로만 조작이 가능하다
// 명시된 클래스만 import
import java.util.Scanner;

// 지정한 패키지 내의 모든 class import
// 하위 패키지는 X
import java.util.*;

Scanner s;
s = new Scanner(System.in);

*예외

  • java.lang 패키지는 별도의 선언 없이 바로 클래스 이름으로 접근이 가능하다
반응형

'dev-log > java' 카테고리의 다른 글

[java] 배열  (0) 2023.10.16
[java] 난수 생성  (0) 2023.10.16
[java] 생성자  (0) 2023.10.16
[java] 접근 제한  (0) 2023.10.16
[java] 메서드 오버로딩 (Method Overloading)  (0) 2023.10.16
Comments