私はかなり大規模なプログラムに取り組んでおり、クラスを分割する時が来たと考えました。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のパブリックです。intRPG
そして私の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();