私はかなり大規模なプログラムに取り組んでおり、クラスを分割する時が来たと考えました。GUI コード用の .java ファイル 1 つと、GUI が提供する機能の背後にあるメカニズム用の .java ファイル 1 つ。しかし、これが私の問題です。各クラスのインスタンスを相互に作成しましたが、プログラムは起動を拒否するため、明らかに何か間違っています。私のRPG
クラスには、次のコード行があります。
public Mechanics mechanics = new Mechanics();
私のMechanics
クラスには、次のコードがあります。
public RPG rpg = new RPG();
これを試すためにこの WAS を実行している理由: 多くの変数がRPG
クラスにあり、それらを my から呼び出してrpg
操作し、それらをに送り返すことができるようにしRPG
たいこの関数をテストします(私のMechanics
クラスから):
class Mechanics{
public RPG rpg = new RPG();
public Mechanics(){
}
public void helloWorld(){
System.out.println("Hello World!");
System.out.println("Health before:"+rpg.Health);
rpg.Health = rpg.Health - 5;
System.out.println("Health after:"+rpg.Health);
}
}
はい、私のクラスHealth
のパブリックです。int
RPG
そして私のRPG
クラスでは、これは私がクラスをテストするために使用しているコードですMechanics
:
mechanics.helloWorld();
ここに私の問題があります: コードはコンパイルされますが、実行しようとすると、次のエラーが発生します:
at Mechanics.<init>(Mechanics.java:15)
at RPG.<init>(RPG.java:127)
これが私の質問です。私はこれを正しくやっていますか?プログラムを実行したくないコードの何が問題なのですか?
追加:他のクラスも呼び出してみましたがprivate
、プログラムはコンパイルされますが、それでも起動を拒否し、同じエラーが表示されます
の 15 行目Mechanics
:
public RPG rpg = new RPG();
の 127 行目RPG
:
public Mechanics mechanics = new Mechanics();