複数のクラスファイルに分ける
●同一ファイルに複数のクラスを用いる
下記のように同一のクラスファイルに複数のクラスを作成することが出来ます。この場合は、クラスファイルの名前に気をつける必要があります。
下記のサンプルプログラムのファイル名はTyokin2.javaです。
class Tyokin3
{
//メンバ変数はお金
int money;
//コンストラクタ(お金の初期値を0にする)
public Tyokin3(){
money = 0;
System.out.println("お金が"+money+"円に初期設定されました。");
}
//お金を引き出す動作を定義したメソッド
void orosu(int hikidashi){
money = money - hikidashi;
System.out.println(money+"円引き出しました。");
}
//お金を貯める動作を定義したメソッド
void tameru(int tyokin){
money = money + tyokin;
System.out.println(money+"円貯金しました。");
}
//お金の残高を表示するメソッド
void hyouzi(){
System.out.println("現在のお金は"+money+"円です。");
}
}
class Tyokin2{
//メインメソッド
public static void main(String args[]){
//お金を管理するインスタンスを作成
Tyokin3 make_money = new Tyokin3();
//お金を貯金
make_money.tameru(1000);
//現在の貯金残高を表示
make_money.hyouzi();
//お金を引き出す
make_money.orosu(300);
//現在の貯金残高を表示
make_money.hyouzi();
}
}
この場合は、クラスファイル名がTyokin2.javaのため、クラスTyokin2が実行されます。そして、Tyokin2のmake_moneyがクラスTyokin3にインスタンス化されます。
しかし、クラスファイル名をTyokin3.javaとした場合、クラスTyokin3が実行されます。このため、クラスTyokin2が実行されません。また、上のサンプルプログラムの場合は、クラスTyokin3にmainメソッドがないために、エラーとなりますので、mainメソッドを必要とします。
このように、同一クラスファイルに複数のクラスを記述する場合、実行したいクラス名でファイル名を名付ける必要があります。
●複数のファイルにクラスを用いる
この場合は、複数のファイルにクラスを記述します。気を付けないといけないことは、他のクラスファイルを参照する場合には、そのディレクトリをCLASSPATHに記述しないといけないことです。
WindowsXPの場合は、マイコンピュータのプロパティ内の詳細設定のタブに移動し、環境変数を選択します。システム環境変数ないのCLASSPATH内をコピーします。そのコピーをしたものに、クラスファイルを参照するディレクトリを追加します。
全てのクラスファイルを同一フォルダに配置する場合には「.」を追加、他のファイルをディレクトリ「file」に配置する場合には、「file」を追加します。この場合には以下の設定の通りになります。コマンドプロンプトを開き以下のコードを実行してください。
set CLASSPATH=";.;file;元のクラスパス;";
次にクラスファイルを分けた場合のコードのサンプルを紹介します。
1つ目のクラスファイルはTyokin1_1.javaです。
public class Tyokin1_1{
//メインメソッド
public static void main(String args[]){
//お金を管理するインスタンスを作成
Tyokin1_2 make_money = new Tyokin1_2();
//お金を貯金
make_money.tameru(1000);
//現在の貯金残高を表示
make_money.hyouzi();
//お金を引き出す
make_money.orosu(300);
//現在の貯金残高を表示
make_money.hyouzi();
}
}
2つ目のクラスファイルはTyokin1_2.javaです。
public class Tyokin1_2
{
//メンバ変数はお金
int money;
//コンストラクタ(お金の初期値を0にする)
public Tyokin1_2(){
money = 0;
System.out.println("お金が"+money+"円に初期設定されました。");
}
//お金を引き出す動作を定義したメソッド
void orosu(int hikidashi){
money = money - hikidashi;
System.out.println(money+"円引き出しました。");
}
//お金を貯める動作を定義したメソッド
void tameru(int tyokin){
money = money + tyokin;
System.out.println(money+"円貯金しました。");
}
//お金の残高を表示するメソッド
void hyouzi(){
System.out.println("現在のお金は"+money+"円です。");
}
}
この場合、クラスファイルTyokin1_1.javaを主に用います。Tyokin1_1.javaはTyokin1_2.classを用いますので、Tyokin1_1.javaをコンパイルする前に前もってTyokin1_2.javaをコンパイルしておく必要があります。その次にTyokin1_1.javaをコンパイルします。
実行の様子を紹介します。
D:\private\java>javac Tyokin1_2.java
D:\private\java>javac Tyokin1_1.java
D:\private\java>java Tyokin1_1
お金が0円に初期設定されました。
1000円貯金しました。
現在のお金は1000円です。
700円引き出しました。
現在のお金は700円です。
戻る
|