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

자바(Java)에서 import 문 뒤에 패키지를 선언할 수 있나요?

결론: import 문 뒤에는 패키지를 선언할 수 없습니다

아니요, 자바(Java)에서는 import 문 뒤에 패키지를 정의할 수 없습니다. import 문 다음에 패키지 선언문을 작성하면 컴파일러가 컴파일 오류를 발생시킵니다.

패키지(package)란 서로 관련된 클래스, 인터페이스, 그리고 하위 패키지들을 하나의 그룹으로 묶어 놓은 것을 의미합니다. 패키지를 사용하면 클래스 이름의 충돌을 방지하고 코드를 체계적으로 관리할 수 있습니다.

특정 패키지 안에 클래스를 생성하려면 반드시 프로그램의 가장 첫 번째 문장에서 패키지 이름을 선언해야 합니다. 단, 주석(comment)은 패키지 선언문 앞에 위치할 수 있습니다.

잘못된 코드 예제

import java.lang.*;
package test;
public class PackageAfterImportTest {
    public static void main(String args[]) {
        System.out.println("Welcome to Tutorials Point !!!");
    }
}

컴파일 결과

PackageAfterImportTest.java:3: error: class, interface, or enum expected
package test;
^
1 error

위 예제처럼 import 문 뒤에 package test;를 작성하면 컴파일러는 "class, interface, or enum expected"라는 오류 메시지를 출력하며 컴파일에 실패합니다.

자바 소스 파일의 올바른 구조

자바 언어 명세(JLS)에 따르면 소스 파일 내 요소들은 반드시 아래 순서대로 작성해야 합니다.

  1. 주석(선택 사항) — 파일 최상단에 위치 가능
  2. 패키지 선언문 — 반드시 첫 번째 실행 문장이어야 함
  3. import 문 — 필요한 만큼 여러 개 선언 가능
  4. 클래스 / 인터페이스 / 열거형(enum) 선언

따라서 위 예제를 올바르게 수정하려면 package test; 문장을 import java.lang.*; 앞으로 옮겨야 합니다.

package test;
import java.lang.*;

public class PackageAfterImportTest {
    public static void main(String args[]) {
        System.out.println("Welcome to Tutorials Point !!!");
    }
}

이렇게 수정하면 프로그램이 정상적으로 컴파일되고 실행됩니다. 자바에서 패키지 선언은 항상 import 문보다 먼저 와야 한다는 점을 기억하세요.