Java 패키지 가져오기(import)

패키지 가져오기 – import 명령

import pname.clazz;
import pname.*;
  pname: 패키지 이름
  clazz: 클래스 이름

패키지를 포함한 클래스명을 FQN(fully qualified name)이라고 한다. 원래 클래스를 선언하기 위해서는 FQN으로 작성하지 해야 한다. 그러나, com.devkuma.tutorial.basic.Animal과 같은 이름을 매번 설명하는 것은 번거롭다.

그래서, 미리 사용할 패키지를 임포트(import)을 선언하여, 코드내에서는 패키지를 생략하고 작성할 수 있게 된다. import 명령은 일반적으로 package 선언을 한 후에 바로 작성한다. 예를 들어, 다음은 같은 방식이다.

package com.devkuma.basic.imports;

import com.devkuma.tutorial.basic.Animal;

// ... 중간 생략 ...

Animal a = new Animal();

import 선언이 없다면, 아래와 같이 작성을 해야 한다.

com.devkuma.tutorial.basic.Animal a = new com.devkuma.tutorial.basic.Animal();

com.devkuma.tutorial.basic 패키지 아래의 모든 클래스를 함께 가져오고 싶다면 다음과 같이 작성할 수도 있다.

import com.devkuma.tutorial.basic.*;

import 선언은 이름을 선언한다는 의미밖에 없기 때문에, * 사용했다고 하여 패키지 전체를 import하여 가져와서 앱이 비대화했다고 하는 일은 일어나지 않는다. 다만, 최근에는 코드내에서 이용하고 있는 클래스를 명확하게 한다고 하는 의미로 가능한 한 *(on-demand import)는 이용하지 않는 것이 관례적이다.

import static 명령 - 클래스 메소드/필드 가져오기 –

import static pname.clazz.member;
import static pname.clazz.*;
  pname: 패키지 이름
  clazz: 클래스 이름
  member: 회원 이름

import static 명령를 사용하여 클래스의 멤버를 클래스 이름을 지정하지 않고 호출할 수도 있다.

예를 들어, 다음은 java.lang.Math 클래스의 abs 메소드에서 절대값을 구하는 예이다. 호출할 때, Math.~와 같은 작성하지 않아도 된다.

package com.devkuma.basic.imports;

import static java.lang.Math.*;

public class ClassStaticImport {
    public static void main(String[] args) {
        System.out.println(abs(-10)); // 결과: 10
    }
}

일반적인 클래스의 임포트와 같이 멤버명까지를 명시하는 것도 가능하다. 위에 같은 경우라면 다음과 같이 import static 명령을 호출해도 같은 의미이다.

import static java.lang.Math.abs



최종 수정 : 2022-11-11