Revised: Sep./9th/2002: Since: Jan./1st/2002
前節でパッケージの作り方と利用方法を説明しました。本節では簡単なパッケージを作って、利用してみましょう。
最初に、利用するパッケージを作ります。パッケージを作ると言うよりも、パッケージに含まれるクラスを作るといった方が適切でしょう。パッケージとは、クラスファイルを保存するディレクトリのパスに他ならないからです。
Pack.java
:
//パッケージ宣言
package firstPack.pack1;
//クラス定義
public class Pack {
//メンバ変数
int n;
String name;
//コンストラクタ
public Pack(int i, String s) {
this.n=i;
this.name=s;
}
//メソッド
public void getName() {
System.out.println(this.name+": "+this.n);
}
}
このクラスを、このパッケージ以外のクラスから利用する為に、アクセス制限の修飾子 public
を記述しています。
このファイルを javac
でコンパイルします。ソースファイル Pack.java
の絶対パスは C:\Java
だったとします:
C:\>cd Java C:\Java>javac Pack.java C:\Java>
これで、インタープリタに実行されるバイトコード Pack.class
が生成されました。パッケージ名として明示したディレクトリまで Pack.class
を移動させましょう。
いまは CLASSPATH を明示していないので、パッケージで指定されたパスを解釈するための基準ディレクトリはカレントディレクトリです。従って、現在のディレクトリ内に firstPack
ディレクトリ内に pack1
ディレクトリを作って、そのディレクトリ内に Pack.class
ファイルを移動させます。
![]() |
図:Pack.class のパッケージ |
Windows の場合の操作を説明しておきます。フォルダや「エクスプローラ」を開いていって、右クリック、「新規作成」で当該フォルダを作っていってもいいのですが、ここではコマンドプロンプトでの操作を紹介しておきます:
C:\Java>md firstPack\pack1 C:\Java>move Pack.class firstPack\pack1
md
は「ディレクトリの作成」コマンドで、 move
は「ファイルの移動」コマンドです。 copy
でコピーしても結構です。確認しておきましょう:
C:\Java>cd firstPack\pack1 C:\Java\firstPack\pack1>dir /B Pack.class
dir
はディレクトリ中のファイルとサブディレクトリを一覧表示します。スイッチ B
はファイル名のみを表示します (見出しや要約が付きません)。確かに C:\Java¥firstPack\pack1
のディレクトリに Pack.class
が存在します。
元のディレクトリに移動しておきましょう:
C:\Java\firstPack\pack1>cd ..\.. C:\Java>
概念図 | エクスプローラの画面キャプチャ |
---|---|
C:__ |__Java |__firstPack |__pack1 |
![]() |
今作ったパッケージ firstPack.pack1
に含まれるクラス Pack
を利用するクラスを作成しましょう。
TestPack.java
:
//インポート
import firstPack.pack1.Pack;
//クラス定義
class TestPack{
public static void main(String args[]){
Pack obj=new Pack(107, "スガイ");
obj.getName();
}
}
冒頭で、カレントディレクトリ(基準ディレクトリ)から見た相対パス firstPack\pack1
に存在するクラスファイル Pack.class
をインポートしているので、このファイルでは Pack
クラスを利用できます。
コンパイルして実行してみましょう:
C:\Java>javac TestPack.java C:\Java>java TestPack スガイ: 107
コンピュータの利用で、ディレクトリを変える必要があると、とたんに出来なくなる方が多くいらっしゃいます。ディレクトリ構成の図を確認して、ゆっくり試してみてください。
![]() |
図:Pack.class のパッケージ |
ソースファイルは、 Pack.java
と TestPackl.java
の二つです。 Pack.java
をコンパイルして生成されたクラスファイル Pack.class
は、ディレクトリ C:\Java\firstPack\pack1
の中に存在します。 TestPack.class
は C:\Java
に存在します。