JAVA/기초공부

[JAVA] 패키지

SoU330 2024. 9. 29. 21:55

 

 

패키지란?

: 자바언어에서 제공되는 여러 클래스 또는 인터페이스들의 특성을 고려하여 분류해 놓은 것

 

 

 

패키지 사용 시 장점

  • 클래스의 이름이나 메소드 이름이 같으면 충돌이 발생하는데 패키지 단위로 구분해놓으면 충돌을 방지할 수 있다.
  • 패키지 단위로 클래스, 메소드, 변수 등의 접근을 제한할 수 있다.
  • 동일한 특성과 성격을 기준으로 클래스들을 분류하면 클래스의 사용과 관리가 용이하다.

 

 

 

 

패키지 사용방법

패키지 선언

package OOP.com.info.dept;

-> 클래스나 인터페이스의 첫 번째 줄에 package 키워드를 사용해 해당 파일이 어떤 패키지에 속하는지 선언한다.

 

패키지 임포트

import java.util.ArrayList;
import java.util.*; // 패키지 내의 모든 클래스 import

-> 다른 패키지에 있는 클래스를 사용하려면 import 키워드를 사용하여 패키지를 임포트한다.

 

 

 

 

패키지 사용 예

package OOP.com.info.dept;

public class TestA {
    public void dispMessage() {
        System.out.println("패키지 : "+"com.info.dept");
        System.out.println("클래스 : "+"TestA");
    }
}
package OOP.com.info.dept;

public class TestB {
    public void dispMessage() {
        System.out.println("패키지 : "+"com.info.dept");
        System.out.println("클래스 : "+"TestB");
    }
}
package OOP.com.info.dept;

public class TestMain {
    public static void main(String[] args) {
        TestA ta = new TestA();
        ta.dispMessage();

        System.out.println();

        TestB tb = new TestB();
        tb.dispMessage();
    }
}

-> 이렇게 같은 패키지에 있으면 별도의 import 문 없이 서로 자유롭게 접근할 수 있다.

 

 

 

 

 

 

접근 제어자와 패키지 접근

접근 제어자에 따라 클래스와 그 멤버에 대한 접근 범위가 결정된다.

  • public : 모든 패키지에서 접근 가능
  • protected : 같은 패키지 + 상속받은 클래스에서 접근 가능
  • default(접근 제어자를 명시하지 않은 경우) : 같은 패키지 내에서만 접근 가능
  • private : 해당 클래스 내부에서만 접근 가능

 

 

 

 

 

시스템 패키지

java로 시작하는 패키지는 자바 프로그램 작성에 필요한 기본적인 클래스들이 분류되어 있다.

javax 로 시작하는 패키지는 확장 패키지로서 GUI 프로그래밍에 필요한 Swing 클래스들을 제공하고 있다.

 

java.applet : 애플릿 클래스

java.awt : GUI AWT 클래스

java.awt.color : 색상 클래스

java.awt.event : AWT 이벤트 관련 클래스

java.awt.image : 이미지 관련 클래스

java.io : 입출력 관련 클래스

java.lang : 기본 데이터형 및 기본 클래스

java.math : 수학의 함수 관련 클래스

java.net : 네트워크 관련 클래스

java.rmi : 원격 호출 관련 클래스

java.security : 보안 관련 클래스

java.sql : 데이터베이스 관련 클래스

java.text : 텍스트 관련 클래스

java.util : 날짜, 캘린더, 시간, Vector 등의 클래스

'JAVA > 기초공부' 카테고리의 다른 글

[JAVA] 접근 제한자  (11) 2024.10.03
[JAVA] 메소드 오버라이딩  (0) 2024.10.01
[JAVA] String 클래스  (1) 2024.09.29
[JAVA] this와 this() 메소드  (0) 2024.09.28
[JAVA] 생성자와 생성자 중복  (5) 2024.09.28