Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 다른 패키지의 클래스를 사용하는 3가지 방법

Java에서 다른 패키지의 클래스를 사용하는 방법

Java에서는 클래스를 패키지(package)로 묶어 관리합니다. 그렇다면 다른 패키지에 속한 클래스를 어떻게 참조하고 사용할 수 있을까요? 이 글에서는 구체적인 예제를 통해 세 가지 방법을 살펴보겠습니다.

예제 상황 이해하기

먼저 payroll 패키지에 Boss 클래스가 정의되어 있는 예제를 보겠습니다.

package payroll;
public class Boss {
    public void payEmployee(Employee e) {
        e.mailCheck();
    }
}

위 코드에서 Boss 클래스는 payEmployee() 메서드 내부에서 Employee 클래스를 사용하고 있습니다. 그런데 만약 Employee 클래스가 payroll 패키지에 속해 있지 않다면 어떻게 해야 할까요?

이 경우 Boss 클래스는 아래 소개하는 방법 중 하나를 사용하여 다른 패키지에 있는 클래스를 참조해야 합니다.

방법 1. 완전 정규화된 이름(Fully Qualified Name) 사용

가장 간단한 방법은 패키지 이름을 포함한 클래스의 전체 경로를 직접 작성하는 것입니다.

payroll.Employee

예를 들어 변수를 선언할 때 다음과 같이 사용할 수 있습니다.

payroll.Employee emp = new payroll.Employee();

이 방법은 코드가 길어질 수 있지만, 별도의 import 문 없이 즉시 사용할 수 있다는 장점이 있습니다.

방법 2. 와일드카드(*)로 패키지 전체 임포트

import 키워드와 와일드카드(*)를 함께 사용하면 해당 패키지에 포함된 모든 클래스를 한 번에 가져올 수 있습니다.

import payroll.*;

이렇게 선언하면 payroll 패키지 안의 모든 클래스를 클래스 이름만으로 사용할 수 있어 편리합니다. 다만, 필요하지 않은 클래스까지 함께 로드될 수 있다는 점과 코드 가독성 측면에서 어느 클래스를 사용했는지 파악하기 어려울 수 있다는 단점도 고려해야 합니다.

방법 3. 특정 클래스만 임포트

패키지 전체가 아니라 필요한 클래스 하나만 명시적으로 임포트할 수도 있습니다.

import payroll.Employee;

이 방식은 실무에서 가장 권장되는 방법입니다. 어떤 클래스를 사용하는지 코드만 보고도 명확하게 알 수 있어 유지보수성과 가독성이 뛰어납니다.

정리

  • 완전 정규화된 이름: payroll.Employee처럼 패키지 경로를 매번 직접 작성
  • 와일드카드 임포트: import payroll.*;로 패키지의 모든 클래스 가져오기
  • 개별 클래스 임포트: import payroll.Employee;로 필요한 클래스만 가져오기

세 가지 방법 중에서는 일반적으로 특정 클래스만 임포트하는 방법이 가독성과 유지보수 측면에서 가장 좋습니다. 프로젝트 규모와 팀의 코딩 컨벤션에 맞춰 적절한 방식을 선택하시기 바랍니다.