본문 바로가기

Study/Java Study

10장. 패키지

1. 패키지

  • 클래스를 고유하게 식별할 수 있는 묶음
  • 클래스 또는 클래스 멤버의 접근 범위를 지정
  • 관련 클래스, 인터페이스, 열거형, 주석 집합을 구성하는 묶음

EX) 패키지는 각각 특정 기능을 가진 클래스의 묶음으로 유사한 클래스와 기능을 캡슐화한 것

import java.util.scanner  

java : 최상위 패키지

util : 하위 패키지

Scanner : 하위 패키지 util에 있는 클래스

 

-  패키지의 두가지 유형 : 사용자 정의 패키지, 내장 패키지

  1. 사용자 정의 패키지: 사용자가 프로젝트의 클래스와 인터페이스를 분류하기 위해 생성하는 패키지
  2. 내장 패키지: java.io.*, java.lang.* 등과 같이 이미 정의된 패키지

2. 패키지 생성 및 사용

package 패키지명;  -> 프로그램 첫 행에 포함

ex) package com.javamaster.mypackage;

 

패키지명 작성 규칙 : 

  • 숫자로 시작 X
  • '_' , '$' 제외한 특수 문자 X
  • java로 시작하는 패키지 X
  • int, static 등 자바 예약어 X
  • 소문자 작성
  • 소스 파일을 각각의 그룹으로 구분하기 위해 마침표(.)를 사용

 

패키지 사용법:

- import 패키지명.클래스명           -> 이 패키지 내에 선언된 클래스에만 접근

- import 패키지명.*;                       -> 이 패키지 내의 모든 클래스와 인터페이스 접근 가능 but 하위 패키지 접근 X

- import 정규화된 이름;                 -> 이 패키지에 선언된 클래스에만 접근

 

 

 

예제 )  com.javamaster.mypackage 패키지를 만들고 이 패키지 내에 Cat 클래스를 생성하여 멤버 메서드를 작성.

그리고 다른 패키지(com.section02)에서 com.javamaster.mypackage 패키지 내에 생성된 Cat.java 파일의 Cat 클래스 멤버를 호출해 보기

package com.javamaster.mypackage;

public class Cat {
  String breed;
  String color;
  
  public void eat() {
    System.out.println("먹이를 먹다");
  }
  
  public void scratch() {
    System.out.println("발톱으로 할퀴다");
  }
  
  public void meow() {
    System.out.prinln("아옹하고 울다");
  }
}
package com.section02;

import com.javamaster.mypackage.*;

public class Package01 {
  public static void main(String[] args) {
    Cat myCat = new Cat();
    myCat.eat();
    myCat.scratch();
    myCat.meow();
  }
}

결과 

먹이를 먹다
발톱으로 할퀴다
야옹하고 울다

 


3. 내장 패키지

 

주요 내장 패키지의 구성

 

 

 

패키지 설명
java.lang 자바 프로그램의 필수 패키지
자바 프로그래밍에 필요한 기본적인 클래스와 인터페이스 제공
import문 없이 사용 가능
java.util 날짜, 시간, 벡터, 해시맵 등의 다양한 유틸리티 클래스와 인터페이스 제공
java.text 날짜, 시간, 문자열 등 현지화를 처리하는 클래스 제공
java.io 입출력 처리 패키지로 키보드, 모니터, 프린터 등에 입출력할 수 있는 클래스와 인터페이스 제공
java.net 네트워크 프로그램을 구현하기 위한 클래스를 제공

 


4. java.lang 패키지

 

5. java.util 패키지

 

6. java. text 패키지

'Study > Java Study' 카테고리의 다른 글

12장. 파일 입출력  (0) 2023.05.28
11장. 예외 처리  (0) 2023.05.28
9장. 추상 클래스와 인터페이스  (0) 2023.05.22
8장. 상속과 다형성  (1) 2023.05.21
7장. 클래스와 객체  (0) 2023.05.20