패키지(package)
-서로 관련 있는 클래스나 인터페이스의 컴파일 된 클래스(.class)의 파일들을 한 곳에 묶어 놓는 것
-패키지는 관련된 클래스 파일들이 들어 있는 디렉토리(파일 시스템의 폴더)
-만약 같은 이름의 클래스가 있다면 충돌이 일어나겠지만 각각 다른 패키지에 같은 이름의 클래스가 있다면 충돌이 발생하지 않습니다.
-패키지를 사용하면 비슷한 성격의 클래스들끼리 묶을 수 있어 클래스의 분류가 용이합니다.
com.example.project 이라는 패키지는
com/example/project 라는 경로에 해당하는 디렉토리가 있습니다.
6.2 import 클래스와 경로
-패키지 사용하기
패키지를 사용하려면 경로명을 사용하여야 합니다. 하지만 예를 들어 Scanner 클래스를 사용할 때마다 java.util.Scanner을 작성하기에는 상당히 번거롭고 귀찮습니다. 그래서 우리는 import문을 사용합니다.
-import
import 패키지.클래스;
다음 과 같이 클래스 경로명을 알려줄 수 있습니다.
import문은 반드시 소스코드 앞부분에 작성되어야 합니다.
import java.util.Scanner;
public class ImportExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
}
}
패키지 안에 있는 여러 클래스를 사용하고 싶은 경우 *을 사용하여 한번에 선언할 수도 있습니다.
import 패키지.*;
import java.util.*;
public class ImportExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
}
}
6.3 패키지 만들기
-패키지 선언
클래스 파일은 반드시 패키지에 소속되어야 합니다. 클래스가 소속도리 패키지 명은 package 키워드를 사용합니다.
package를 이용하는 코드는 소스파일의 첫줄에 선언합니다.
package 패키지명;
UI라는 이름의 패키지(UI 디렉터리)에 Tools 클래스를 저장하고자 한다면 다음과 작성하면 됩니다.
package UI;
public class Tools{
(생략)
}
이제 다른 패키지에 있는 클래스에서 Tools 클래스를 사용하고자 하면, 다음과 같이 import문을 사용하면 됩니다.
import UI.Tools;
디폴트 패키지(default package)
package를 사용하지 않고 자바의 클래스나 인터페이스를 작성하면 해당 클래스와 인터페이스는 어느 패키지에 속할까요?
바로 디폴트 패키지에 소속시킵니다.
즉 처음에 클래스파일을 만들때, 패키지를 만들지 않고 클래스 파일을 만든다면 디폴트 페키지에 속하는 것이 됩니다.
패키지의 특징 정리
1. 동일한 이름의 클래스나 인터페이스가 서로 다른 패키지에 속할 수 있어 충돌을 방지할 수 있다.
2. 클래스와 인터페이스를 논리적으로 그룹화 할 수 있다.
3. public, protected, default의 경우 패키지 내부에서만 접근 가능할 수 있게 하여 접근 제어를 통해 캡슐화를 강화할 수 있습니다.
4. 코드의 중복을 줄이고 개발 시간과 비용을 절약할 수 있습니다.
5. 패키지 단위로 문서화하고 테스트를 할 수 있기에 코드 품질을 관리하기 더 용이합니다.
본 글은 교재 명품 JAVA Programming (개정4판)을 참고했음을 밝힙니다.
'전공수업정리 > Java' 카테고리의 다른 글
[JAVA]입출력 스트림과 파일 입출력 (0) | 2024.05.27 |
---|---|
[JAVA]StringBuffer 클래스 (0) | 2024.05.16 |
[JAVA]String 클래스 (1) | 2024.05.15 |
[JAVA]Object class,프로세스,스레드,toString(),equal() (0) | 2024.05.15 |
[JAVA] 모듈 (0) | 2024.05.10 |