다른 패키지의 Java 클래스에 접근하기
자바에서는 패키지가 다른 클래스를 사용해야 하는 상황이 자주 발생합니다. 이를 이해하기 위해 payroll 패키지에 Boss 클래스가 정의되어 있는 예제를 살펴보겠습니다.
package payroll;
public class Boss {
public void payEmployee(Employee e) {
e.mailCheck();
}
}그런데 만약 Employee 클래스가 payroll 패키지에 속해 있지 않다면 어떻게 될까요? 이 경우 Boss 클래스는 다른 패키지에 있는 클래스를 참조하기 위해 아래 세 가지 방법 중 하나를 반드시 사용해야 합니다.
1. 완전 정규화된 클래스 이름(Fully Qualified Name) 사용
패키지 이름과 클래스 이름을 모두 포함한 전체 경로를 직접 작성하는 방법입니다. 코드가 짧을 때는 간편하지만, 해당 클래스를 여러 번 사용하면 코드가 길어지고 가독성이 떨어질 수 있습니다.
payroll.Employee
2. 와일드카드(*)로 패키지 전체 가져오기
import 키워드와 와일드카드(*)를 함께 사용하면 해당 패키지에 포함된 모든 클래스를 한 번에 가져올 수 있습니다. 편리하지만, 어떤 클래스를 사용하는지 명확하지 않아 대규모 프로젝트에서는 권장되지 않는 경우도 많습니다.
import payroll.*;
3. 필요한 클래스만 개별적으로 가져오기
import 키워드를 사용하여 실제로 필요한 클래스만 선택적으로 가져오는 방법입니다. 코드의 의존 관계를 명확하게 보여줄 수 있어 일반적으로 가장 권장되는 방식입니다.
import payroll.Employee;
이처럼 자바에서는 완전 정규화된 이름 사용, 와일드카드 임포트, 특정 클래스 임포트라는 세 가지 방법으로 다른 패키지의 클래스에 접근할 수 있으며, 상황에 맞게 적절한 방식을 선택하는 것이 좋습니다.