Javaのimport文

Java のクラス及びインタフェースの名前は、原則として、パッケージ名を含めた完全修飾名で指定する必要がある。ただし、import 文を使うと、パッケージ名による修飾を省略できるので、簡潔に記述できるようになる。

使い方

Javaにおいてクラス等を使うには、パッケージ名で修飾する必要がある。

public class Example {
  public static void main(String[] args) {
    java.util.Scanner scanner = new java.util.Scanner(System.in);
    System.out.println("年齢を入力してください");
    int age = scanner.nextInt();
    System.out.println("年齢は" + age + "です");
  }
}

import文でクラスやパッケージ等をインポートすると、パッケージ名による修飾を省略できる。

import java.util.Scanner;

public class Example {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("年齢を入力してください");
    int age = scanner.nextInt();
    System.out.println("年齢は" + age + "です");
  }
}

アスタリスク

インポート対象にアスタリスクを指定することで、パッケージに含まれるすべてのフィールド、クラス及びインタフェースを一括してインポートすることもできる。

import java.util.*;

public class Example {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("年齢を入力してください");
    int age = scanner.nextInt();
    System.out.println("年齢は" + age + "です");
  }
}

import static

import static文でstatic変数やstaticメソッドをインポートすると、パッケージ名やクラス名で修飾することなくstatic変数やstaticメソッドを記述することができる。

import static package.class.static-variable
import static package.class.static-method
import static package.class.*

java.langパッケージのインポート

java.langパッケージに限り、コンパイラによって暗黙的にimportされるため、明示的にimportする必要はない。

public class Example {
  public static void main(String[] args) {
    // java.lang.String
    String str = "Java";
  }
}

同名クラス

同名クラスを複数インポートした場合、最初にインポートしたクラスが優先される。

別名

他のプログラミング言語の中には import 時に別名を付けられるものもあるが、Java では import 時に別名を付けることはできない。

EclipseでJavaのimportが見つからない

Eclipse で Java の import が見つからない場合、エラーメッセージが表示される。

インポートされた com.segakuin.Example が見つかりません

この場合は、Java のビルド・パスにプロジェクトを追加する必要がある。

VSCodeでJavaのimportが見つからない

VScode では project/.classpath に記述したパスを参照してクラスを探している。

<?xml version="1.0" encoding="UTF-8">
<classpath>
  <classpathentry kind="lib" path="lib/">
</classpath>