- 前述のとおり,Javaプログラムはクラスファイルの集合体.
- クラス毎にmainメソッドを定義できる.
- よって,同じJavaプログラムでも,どのクラスから開始するかで, その動作は当然,異なる.
- ちなみに,(公開されている)クラスのインスタンスは, 他のクラスのメソッド(含む main メソッド)からでも生成可能.
- 複数のmainメソッドを持っている例
javacコンパイラで、Arm.javaとFoot.javaをコンパイルすると、Arm.class, Hand.class, Foot.classが生成される。
図の通り、Arm.classにもFoot.classにもmainメソッドがあるので、どちらをjavaランタイム環境で「実行開始」するかによって、どちらのmainメソッドが呼ばれるか決まるため、各々で動作が異なる。
<Arm.classから開始した場合>
$ java -classpath . Arm
A Hand washed.
An Arm washed.
A Hand washed.
An Arm washed.
A foot washed.
A foot washed.<Foot.classから開始した場合>
$ java -classpath . Foot
A foot washed.
A foot washed.
A Hand washed.
An Arm washed.
A Hand washed.
An Arm washed.
2003年10月1日 11:29 更新