2019.04.15
他のパッケージに含まれるクラスを利用するための予約語です。バイトコードをクラスライブラリから探して、パッケージ情報を与えます。
一つのパッケージにつき、同じクラスの名前は一つがしか存在できません。しかしパッケージが違えば、同じ名前のクラスが存在してもよいことになってます。パッケージ間での同じクラス名の衝突を避けるため、インポート文を使うのです。
パッケージの間で、同じクラスの名前が存在しても衝突しないように「完全修飾名」を使います。完全修飾名とは、パッケージ名とクラス名を連結したものです。同じパッケージに属するならパッケージ名の後にアスタリスク(*)を指定することで、全てのクラスを インポートできます。ただ、このように記述した場合は、思わぬクラスもインポートしてしまう可能性があります。
importのサンプルコードは以下の通りです。
1 2 3 4 5 6 7 8 9 10 | //サンプル import java.util.Calendar; //ファイルの先頭に記入 public class Sample{ public static void main(String args[]){ Calendar day = Calendar.getInstance(); System.out.println("今月は" + day.get(Calendar.MONTH) + "月です"); System.out.println("今日は" + day.get(Calendar.DATE) + "日です"); } } |
実行結果(3月10日に実行した場合)
1 2 | 今月は3月です 今日は10日です |
このサンプルコードではjava.utilパッケージのCalendarクラスを使用しました。Calendarクラスのオブジェクトに、getメソッドで変数dayを代入してます。java.utilパッケージは、Calendarクラスの他にも配列を操作するためのArraysクラス、将来実行されるタスクをスケジュールするTimarクラスなど便利なクラスがいろいろあります。
java.net | ネットワーク・アプリケーションを実装するためのクラスを提供 |
java.lang | Javaプログラミング言語を設計するための基本的なクラスを提供 |
java.util | さまざまなユーティリティ・クラスを提供 |
java.io | ファイル・システム経由でのシステム入出力用に提供 |
java.sql | データ・ソースに格納されたデータにアクセスして処理するためのAPIを提供 |
上記に挙げたパッケージは一部のパッケージです。その他のパッケージ一覧も知りたい方は、以下のオラクルのサイトをご覧ください。
URL:https://docs.oracle.com/javase/jp/8/docs/api/overview-summary.html
StringクラスやMathクラスなどを利用する際には import文を記述する必要はありません。StringクラスやMathクラスがjava.langという特別なパッケージに所属していて、自動的にインポートされるためです。
下記のサンプルをご参考ください。
1 2 3 | //例外サンプル java.lang.String a = new java.lang.String("Hello"); String a = new String("Hello"); |
Stringクラスがjava.langパッケージに含まれているため、省略できることを表してます。普段目にするStringクラスは、簡易表記された文だったのですね。