【Java】import文を理解する

Javaのプログラムの冒頭にimport~という文を見かけたことはないでしょうか。

本記事では、import文の意味と使いどころなど紹介します。

結論

一言でいうと,,,

import文は、別のパッケージのクラスの指定(FQCN)を軽減するために用いられます。

以下で詳しく説明していきます。

パッケージとは

大量なクラスを分類、管理できるようにグループ分けしたものをパッケージと呼びます。

例として、ランダムな整数を実行したい場合、先人が作ったパッケージから簡単に呼び出すことができます。

int randomNumber = new java.util.Random().nextInt();

Javaで、この先人が作ったパッケージやクラスのことをJava APIと呼びます。

FQCNとは

完全修飾クラス名(full qualified class name)の省略してFQCNと呼んでいます。

別のパッケージのクラスを指定する際、パッケージ名、クラス名を完全な形で記述する必要があります。

例として、ランダムな整数を実行したい場合、Java APIのjava.utilパッケージのRandom クラスの nextInt() として

上記のように記述する必要があります。

これを怠ると、自分と同じパッケージのクラスを呼び出そうとし、エラーに繋がります。

error: cannot find symbol
int randomNumber = new Random.nextInt();
                       ^
symbol: class Random

使いどころ

別のパッケージのクラスを用いる場合、FQCNで記述する必要があることは先述した通りです。

しかし、たくさんのパッケージを用いる場合、一つ一つFQCNで記述するのは、面倒です。

そうしたFQCNの記述を軽減するためimport文を用います。

例として、adventureapp.actionパッケージのHeroクラスを用いたい場合

public class Main{
    public static void main(String[] args){
        adventureapp.action.Hero h = new adventureapp.action.Hero();
        adventureapp.action.Hero.walk();
        adventureapp.action.Hero.attack();
        adventureapp.action.Hero.run();
    }
}

とても長く面倒です。

しかし、import文を用いると

import adventureapp.action.Hero;
public class Main{
    public static void main(String[] args){
        Hero h = new Hero();
        Hero.walk();
        Hero.attack();
        Hero.run();
    }
}

と簡潔に記述することができます。

上記のようにimport文は、importの後にパッケージ名.クラス名を記述します。

このようにとても長いパッケージやたくさんのパッケージを用いる場合、import文によって、簡潔に記述することができるというわけです。