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

자바(Java)에서 다른 패키지의 클래스에 접근하는 3가지 방법

패키지가 다른 클래스에 접근해야 하는 상황

자바에서는 하나의 패키지에 속한 클래스가 다른 패키지의 클래스를 사용해야 하는 경우가 자주 발생합니다. 이해를 돕기 위해 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

이처럼 패키지 이름과 클래스 이름을 마침표(.)로 연결하여 사용하면, 별도의 import 문 없이도 해당 클래스를 참조할 수 있습니다. 다만 코드가 길어지고 가독성이 떨어질 수 있으므로, 해당 클래스를 한두 번만 사용할 때 적합합니다.

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

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

import payroll.*;

이 방식은 payroll 패키지 안의 여러 클래스를 동시에 사용해야 할 때 편리합니다. 단, 불필요한 클래스까지 모두 로딩 대상에 포함될 수 있으므로 필요한 클래스만 명시적으로 임포트하는 것이 더 깔끔한 코딩 스타일로 권장되기도 합니다.

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

필요한 클래스가 명확하다면, 해당 클래스 하나만 지정해서 임포트하는 것이 가장 효율적입니다.

import payroll.Employee;

이렇게 하면 Employee 클래스를 패키지 경로 없이 클래스 이름만으로 바로 사용할 수 있어 코드가 간결해집니다.

import 문 작성 시 주의사항

하나의 클래스 파일에는 원하는 만큼 많은 import 문을 포함할 수 있습니다. 단, import 문의 위치에는 규칙이 있습니다.

  • import 문은 반드시 package 문 뒤에 위치해야 합니다.
  • import 문은 반드시 클래스 선언부 앞에 위치해야 합니다.

즉, 올바른 순서는 packageimportclass 선언 순입니다. 이 순서를 지키지 않으면 컴파일 오류가 발생하므로 주의해야 합니다.