패키지 (Package)
자바에서 패키지란 특정한 목적을 공유하는 클래스와 인터페이스의 묶음을 의미한다. 즉, 서로 관련 있는 클래스들을 묶어 효과적으로 관리하기 위해 사용한다.
자바의 패키지는 하나의 디렉토리(directory)이고, 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지에 속해있다.
패키지는 계층 구조를 가지며, 계층 간의 구분은 점(.)으로 표현된다.
패키지가 있는 경우 소스 코드의 첫 번째 줄에 반드시 package 패키지명이 표시되어야 하고, 패키지 선언이 없으면, 이름 없는 패키지에 속하게 된다.
package 패키지.서브패키지.서브패키지의서브패키지;
public class PackageEx {
...
}
자바에 기본적으로 포함되어 있는 대표적인 패키지로는 java.lang, java.util, java.io, java.nio 등이 있다.
java.lang : 자바의 기본 클래스들을 모아 놓은 패키지
java.util : 자바의 확장 클래스를 모아 놓은 패키지
java.io, java.nio : 자바의 입출력과 관련된 클래스를 모아 놓은 패키지
주로 사용하는 String 클래스는 자바의 기본 패키지로 java.lang에 속해 있으며, 엄밀히 말하면 java.lang.String이다.
패키지의 장점
같은 이름의 클래스들의 충돌을 방지한다. 같은 이름을 가진 클래스를 선언하더라도 서로 다른 패키지에 존재하면 충돌이 발생하지 않는다.
클래스들을 그룹 단위로 묶어 효과적으로 관리할 수 있다.
import (패키지의 사용)
import는 다른 패키지 내의 클래스를 사용하기 위해 사용한다. 일반적으로 패키지 구문과 클래스문 사이에 작성한다.
import의 사용 없이 다른 패키지의 클래스를 사용하기 위해서는 매번 패키지명을 붙여 주어야 한다. 이러한 수고를 덜기 위해 import문을 사용하며, 사전에 컴파일러에게 소스파일에 사용된 클래스에 대한 정보를 제공하는 역할을 한다.
만약 import를 사용하지 않는다면, 다른 패키지의 클래스를 활용하여 객체를 생성하려면 다음과 같이 코드를 작성해야 한다.
package package1.subpackage;
public class ImportEx {
public void print() {
System.out.println("package1.subpackage");
}
}
package package2.subpackage;
public class Main{
public static void main(String[] args) {
packagetest.subpackage.ImportEx importEx = new packagetest.subpackage.ImportEx();
importEx.print();
}
}
하지만 import를 사용하면 다음과 같이 코드를 간결하게 작성할 수 있다.
package package1.subpackage;
public class ImportEx {
public void print() {
System.out.println("package1.subpackage");
}
}
package package2.subpackage;
import package1.subpackage.ImportEx;
// import package1.subpackage.*;
public class Main{
public static void main(String[] args) {
ImportEx importEx = new ImportEx();
importEx.print();
}
}
'언어(Language) > Java' 카테고리의 다른 글
[Java] 자바 Getter와 Setter 개념 정리 및 활용 (0) | 2022.09.17 |
---|---|
[Java] 접근 제어자(Access modifier) 개념 정리 및 활용 (0) | 2022.09.17 |
[Java] 자바 캡슐화(Encapsulation) 개념 정리 (2) | 2022.09.17 |
[Java] 자바 Object 클래스 개념 정리 (0) | 2022.09.16 |
[Java] 자바 super() vs super (0) | 2022.09.16 |