※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요!
[ 1 ] 패키지란?
하나의 컴퓨터에는 같은 이름을 가진 2개의 파일이 공존할 수 없다. 즉, 내가 test.txt 파일을 작성해서 저장했다면, 그 내용이 다를지라도 또다른 test.txt 파일을 저장할 순 없는 것이다.
이러한 불편함을 해결해 준 것은 '폴더'였다. 우리는 카테고리를 설정하여 그에 상응하는 폴더를 생성하고, 그 폴더 내에는 비슷한 내용을 담은 수많은 파일들을 저장할 수 있게 되었다. 또한, 각자가 다른 폴더에 저장되어 있다면 같은 이름을 가진 파일도 공존할 수 있게 되었다.
Java의 패키지도 폴더와 같은 역할을 한다. 비슷한 성격의 클래스들을 하나의 패키지에 모아 저장할 수 있는 것이다. 패키지를 활용함으로써 우리는 클래스의 이름이 동일하더라도 다른 패키지에 속해 있다면 각 클래스를 사용할 수 있고, 클래스의 분류도 용이하게 할 수 있다.
[ 2 ] 패키지 사용하기
서로 다른 클래스가 동일한 패키지에 속해있다면 자유롭게 각 클래스를 활용할 수 있지만, 다른 패키지에 속한 클래스를 사용하기 위해서는 import라는 것을 해야 한다.
package example1;
public class A {}
package example2;
import example1.A;
public class B {
public static void main(String[] args) {
A a = new A();
}
}
다음과 같이 A 클래스는 example1 패키지에 있고, B 클래스는 example2 패키지에 있다고 가정하자. 각 클래스는 서로 다른 패키지에 속해 있기 때문에 B 클래스가 A 클래스를 사용하기 위해서는
import example1.A;
라는 코드를 작성해야 한다.
이는 import를 통해 example1 패키지에 있는 A 클래스를 사용하겠다는 의미이며 위 코드를 작성하면 example2 패키지에 속한 B 클래스에서도 example1 패키지에 속한 A 클래스를 사용할 수 있다.
[ 주의 ]
아직 클래스 접근 제어자(access modifier)에 대해 다루지 않았지만, public class로 정의된 클래스만 다른 패키지에서 사용 가능하다. default class는 같은 패키지 내에서만 사용 가능하다.
[ 참고자료 ]
'Programming > Java' 카테고리의 다른 글
[Java] 다형성(Polymorphism) (0) | 2022.08.16 |
---|---|
[Java] 추상 클래스(abstract class)와 인터페이스(interface) (1) | 2022.08.11 |
[Java] Overriding, Overloading (0) | 2022.08.04 |
[Java] 생성자 및 상속에서의 생성자 (0) | 2022.08.02 |
[Java] 클래스(class)의 구성과 클래스 멤버 및 인스턴스 멤버 (1) | 2022.08.01 |