連載
» 2009年08月28日 00時00分 公開

【改訂版】Eclipseではじめるプログラミング(10):Javaの実案件に必須のパッケージとインポートを知る (2/3)

[小山博史,株式会社ガリレオ]

Eclipseでパッケージに含まれるクラスを作ってみる

 次に、このパッケージに含まれる「Sample90」クラス(sample.Sample90)を作成します。

図4 sampleパッケージをマウス右ボタンクリック 図4 sampleパッケージをマウス右ボタンクリック
図5 [新規Javaクラス]ダイアログ 図5 [新規Javaクラス]ダイアログ(画像をクリックすると、拡大します),図5 [新規Javaクラス]ダイアログ(画像をクリックすると、拡大します)
図6 クラスができたときのEclipse画面 図6 クラスができたときのEclipse画面(画像をクリックすると、拡大します),図6 クラスができたときのEclipse画面(画像をクリックすると、拡大します)

 これまでの連載では、パッケージに含まれるクラスを作りませんでしたが、実は、こういったクラスは、「デフォルト・パッケージ」にクラスが追加されていました。今回は、sampleパッケージに含まれるクラスを作成したので、[パッケージ・エクスプローラー]ではsampleパッケージの下に「Sample90.java」というファイルが出来ているのが分かります。

「package」キーワードの使い方

 また、自動生成されたソースコードを見ると、このクラスがsampleパッケージのクラスであることを示すには、先頭で「package」というキーワードを使って含まれるパッケージ名を宣言するようにコーディングすればよいことが分かるはずです。

package sample;
 
public class Sample90 {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    }
}
sample\Sample90.java(生成されたコード)

パッケージはフォルダ、クラスはファイル

 ファイルシステム上では、パッケージはフォルダディレクトリ)に、クラス(ソース)はJavaソースコードファイルに対応しています。このため、Windowsでエクスプローラで対応するフォルダを開くと、図7のようになっているはずです。

図7 エクスプローラによる確認 図7 エクスプローラによる確認

 Eclipseをインストールしたフォルダにある「workspace\Sample」フォルダが「Sample」プロジェクトと対応するフォルダで、その中にあるsampleフォルダがsampleパッケージと対応するフォルダです。このsampleフォルダにsample.Sample90クラスと対応するソースコードファイルSample90.javaがあることを確認できます。

 Javaバイトコードファイルは、「workspace\Sample\bin」フォルダの中にあるsampleフォルダ内にSample90.classというファイル名で生成されていることを確認できます。

パッケージ名を省略するための「import文」

 なおパッケージを含めたクラス名を使うと、パッケージ名の分はタイピング量が増えるので、省略したい場合があります。そんなときは、「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 + " ");
        }
    }
}
sample\Sample90.java(修正したコード)

 ここでは、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
Sample90.javaの実行結果

注意 「java.langパッケージだけは、import文も省略できる」

ここで、少しだけ注意点があります。実は「String」クラスや「System」クラスの正式名はそれぞれ「java.lang.String」「java.lang.System」になります。

ただし、java.langパッケージのクラスについては、パッケージ名を省略できるので、StringやSystemとコーディングできたのです。ほかのパッケージについては、import文を使わないと省略することはできません。


 次ページでは、さらに複数のクラスをインポートする方法を説明します。また、パッケージ名は、どのように付けるべきかも紹介するので、参考にしてください。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。