これまではパッケージに含まれるクラスを作りませんでした。こういったクラスは、デフォルト・パッケージにクラスが追加されました。今回はsampleパッケージに含まれるクラスを作成したので、[パッケージ・エクスプローラー]ではsampleパッケージの下にSample100.javaというファイルができているのが分かります。また、自動生成されたソースコードを見ると、このクラスがsampleパッケージのクラスであることを示すには、先頭でpackageというキーワードを使って含まれるパッケージ名を宣言するようにコーディングすれば良いことが分かるはずです。
ファイルシステム上では、パッケージはディレクトリに、クラス(ソース)はJavaソースコードファイルに対応しています。このためWindowsではエクスプローラで対応するディレクトリを開くと次の図のようになっているはずです。Eclipseをインストールしたディレクトリにあるworkspace\SampleディレクトリがSampleプロジェクトと対応するディレクトリで、sampleディレクトリがsampleパッケージと対応するディレクトリです。このsampleディレクトリにsample.Sample100クラスと対応するソースコードファイルSample100.javaとJavaバイトコードファイルSample100.classがあることを確認できます。
それでは、次のようにsample.Sample100クラスへ水色の部分を追加してください。パッケージを含めたクラス名を使うとパッケージ名の分はタイピング量が増えるので、省略をしたい場合があります。そんなときは、ここで示したようにimport文を使います。ここでは、java.util.Listインターフェイス、java.util.ArrayListクラス、java.util.LinkedListクラスをimportしています。これらのクラスを使うときは、前回作成したSample100(sample.Sample100ではありません)ではパッケージも含めてコーディングしていましたが、今回のsample.Sample100のようにimportしておくと、各インターフェイス、各クラスともにパッケージは省略してコーディングできるようになっていることが分かります。
実行する場合はこれまでと同じです。プログラムの内容はパッケージに含まれるクラスにして、java.util.Listインターフェイスなどのパッケージ名を省略できるようにimport文を使うように修正しただけなので、前回「Javaのインターフェイスを理解する」のSample100クラスと同じになり、画面8の実行結果となります。
A B
A B
ここで、少しだけ注意点があります。実はStringクラスやSystemクラスの正式名はそれぞれjava.lang.Stringとjava.lang.Systemになります。ただし、java.langパッケージのクラスについては、パッケージ名を省略することができるので、StringやSystemとコーディングすることができたのです。ほかのパッケージについてはimport文を使わないと省略することはできません。最後にJavaの代表的なパッケージを紹介しておきます。
パッケージ名 | パッケージの内容 |
---|---|
java.awt | Abstract Window Toolkit。GUIアプリケーション作成時に使います |
java.io | データストリーム、ファイルシステムなどによるシステム入出力用クラスが含まれています |
java.lang | 基本クラス。ここに含まれるクラスはパッケージ名を省略して使うことができます |
java.net | ネットワーク対応アプリケーション作成時に使います |
java.util | プログラムを作成するに当たって便利なコレクションフレームワークやユーティリティクラスが含まれています。例えば、日時機能、乱数ジェネレーターなどがあります |
今回はパッケージについて解説をしました。パッケージは実用的なプログラムを作成するときには必ず使用しますので、よく意味を理解しておきましょう。さらに、代表的なパッケージについて覚えておくと応用的なプログラムを作成するときに利用できそうなクラスを効率よく探すことができるようになります。
さて、本連載は開発環境「Eclipse」を使い、プログラミングの基礎を学び、プログラミングとJava言語に慣れていただくことを目的としていました。これまでの解説で、読者の皆さんは、あらかじめプログラムをコーディングしておいた通りに自動的に計算をして結果を出力するようなプログラムの作成ができるようになったと思います。ということで、本連載は今回で終わりになります。この連載で理解したことを土台として、プログラムを対話的に実行する方法、GUIプログラミング、ネットワークプログラミングなどについても学んで、さらにプログラミングを楽しんでもらえるようになればと思います。最後に、ここまで読んでくださった読者の皆さん、ありがとうございました。
小山博史(こやま ひろし)
情報家電、コンピュータと教育の研究に従事する傍ら、オープンソースソフトウェア、Java技術の普及のための活動を行っている。Ja-Jakartaプロジェクト(http://www.jajakarta.org/)へ参加し、コミッタの一員として活動を支えている。また、長野県の地域コミュニティである、SSS(G)(http://www.sssg.org/)やbugs(J)(http://www.bugs.jp/)の活動へも参加している。
Copyright © ITmedia, Inc. All Rights Reserved.