자바 패키지란
자바 패키지란 클래스들의 모음집 입니다.
패키지를 통해서 라이브러리끼리 구분이 가능합니다.
패키지를 사용하는 이유는 클래스명의 고유성을 보장하기 위함입니다.
때로는 서로 다른 용도의 라이브러리를 도입할 때 이름이 충돌하는 클래스들이 있을 수 있는데
이럴 때 패키지 기능을 사용하여 클래스의 이름이 충돌하는 것을 방지할 수 있습니다.
네임스페이스란
많은 클래스를 다루어야 하는 대규모 프로그램을 작성하는 경우
이름이 같은 클래스를 사용해야 하는 상황이 있습니다.
이렇게 패키지에 의해 나뉘어진 클래스의 이름의 모임을 일컬어 '네임스페이스' 라고 부릅니다.
다른 패키지 안의 클래스를 사용하기 위한 조건
1. 다른 패키지의 클래스에서 사용될 클래스의 이름 앞에 public 을 사용해야 합니다.
클래스의 이름 앞에 public 을 붙이면 다른 패키지에서 사용할 수 있도록 만들겠다는 의미입니다.
2. 다른 패키지의 클래스를 사용할 때 그 클래스 이름 앞에 패키지 이름을 붙여야 합니다.
이 클래스가 어느 패키지에 속해있는지를 알려주어야 합니다.
제한자 범위
클래스 및 인터페이스에 붙이는 제한자
제한자 | 의미 |
지정하지 않음 | 같은 패키지에서만 사용 |
public | 다른 패키지에서도 사용 |
멤버 및 생성자에 붙이는 제한자
제한자 | 의미 |
private | 같은 클래스에서만 사용 |
지정하지 않음 | 같은 패키지에서만 사용 |
protected | 같은 패키지에 속한 클래스와 다른 패키지에 속한 서브클래스에서만 사용 |
public | 모든 클래스에서 사용 (단 클래스가 public 이 아닌경우 같은 패키지에서만 사용) |
같은 패키지 내에 다른 파일로 구성된 클래스를 사용하는 방법은 간단하기 때문에
다른 패키지에 구성된 클래스와 함수를 사용하는 방법을 작성해 보았습니다.
패키지 예제
패키지 Chapter13_package1 에는 PackageTest 의 클래스가 있습니다.
동일하게 패키지 Chapter13_package2 에도 PackageTest 의 클래스가 있습니다.
동일한 클래스명이기 때문에 하나의 패키지 내에 있다면 에러가 발생합니다.
그렇지만 다른패키지에 구현되어 있어서 다른 패키지의 같은 클래스 명이라도 에러가 발생하지 않습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package Chapter13_package1;
public class PackageTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Chapter13_package2.PackageTest pk = new Chapter13_package2.PackageTest();
pk.package_function();
package_function();
}
public static void package_function() {
System.out.println("패키지1 의 함수");
}
}
|
cs |
1
2
3
4
5
6
7
8
|
package Chapter13_package2;
public class PackageTest {
public void package_function () {
System.out.println("패키지2 의 함수");
}
}
|
cs |
'Computer Language > JAVA' 카테고리의 다른 글
[JAVA] 자바 예외처리 방법 try catch finally 문 (0) | 2021.03.17 |
---|---|
[JAVA] 자바 임포트(import)란 (0) | 2021.03.16 |
[JAVA] 자바 파일 분할, 파일 나누어 코딩하는 방법 (1) | 2021.03.16 |
[JAVA] 자바 인터페이스란, 2개 이상의 인터페이스 구현하기 (0) | 2021.03.15 |
[JAVA] 자바 인터페이스란 (0) | 2020.12.16 |