次に、このパッケージに含まれる「Sample90」クラス(sample.Sample90)を作成します。
これまでの連載では、パッケージに含まれるクラスを作りませんでしたが、実は、こういったクラスは、「デフォルト・パッケージ」にクラスが追加されていました。今回は、sampleパッケージに含まれるクラスを作成したので、[パッケージ・エクスプローラー]ではsampleパッケージの下に「Sample90.java」というファイルが出来ているのが分かります。
また、自動生成されたソースコードを見ると、このクラスがsampleパッケージのクラスであることを示すには、先頭で「package」というキーワードを使って含まれるパッケージ名を宣言するようにコーディングすればよいことが分かるはずです。
package sample; public class Sample90 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub } }
ファイルシステム上では、パッケージはフォルダ(ディレクトリ)に、クラス(ソース)はJavaソースコードファイルに対応しています。このため、Windowsでエクスプローラで対応するフォルダを開くと、図7のようになっているはずです。
Eclipseをインストールしたフォルダにある「workspace\Sample」フォルダが「Sample」プロジェクトと対応するフォルダで、その中にあるsampleフォルダがsampleパッケージと対応するフォルダです。このsampleフォルダにsample.Sample90クラスと対応するソースコードファイルSample90.javaがあることを確認できます。
Javaバイトコードファイルは、「workspace\Sample\bin」フォルダの中にあるsampleフォルダ内にSample90.classというファイル名で生成されていることを確認できます。
なおパッケージを含めたクラス名を使うと、パッケージ名の分はタイピング量が増えるので、省略したい場合があります。そんなときは、「import文」(インポート、引き入れる)を使います。次のようにsample.Sample90クラスを修正してください。
package sample; import java.util.List; import java.util.ArrayList; import java.util.LinkedList; public class Sample90 { public static void main(String[] args) { new Sample90().execute(); } public void execute() { List list = new ArrayList(); list.add("A"); list.add("B"); for (int i = 0; i < list.size(); i++) { String s = (String) list.get(i); System.out.print(s + " "); } System.out.println(""); list = new LinkedList(); list.add("A"); list.add("B"); for (int i = 0; i < list.size(); i++) { String s = (String) list.get(i); System.out.print(s + " "); } } }
ここでは、java.util.Listインターフェイス、java.util.ArrayListクラス、java.util.LinkedListクラスをimportしています。これらのクラスを使う場合、前回の「プログラムを「変更」しやすくする“インターフェイス”」で作成したSample90(sample.Sample90ではありません)では、パッケージも含めてコーディングしていましたが、今回のsample.Sample90のようにimport文で指定しておくと、各インターフェイス、各クラスともにパッケージは省略してコーディングできるようになっていることが分かります。
実行する場合は、これまでと同じです。プログラムの内容はパッケージに含まれるクラスにして、java.util.Listインターフェイスなどのパッケージ名を省略できるようにimport文を使うように修正しただけなので、前回のSample90クラスと同じになり、Sample90の実行結果となります。
A B A B
ここで、少しだけ注意点があります。実は「String」クラスや「System」クラスの正式名はそれぞれ「java.lang.String」「java.lang.System」になります。
ただし、java.langパッケージのクラスについては、パッケージ名を省略できるので、StringやSystemとコーディングできたのです。ほかのパッケージについては、import文を使わないと省略することはできません。
次ページでは、さらに複数のクラスをインポートする方法を説明します。また、パッケージ名は、どのように付けるべきかも紹介するので、参考にしてください。
Copyright © ITmedia, Inc. All Rights Reserved.