次に、このパッケージに含まれる「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.