私は比較的Javaが初めてで、javafxで少し実験しています
クラスBのメソッドを使いながら、クラスAの変数を変更したい
Main: これはメイン クラスです。必要なものがすべて含まれています (primaryStage などを表示します)。コンストラクターがあるため、実際の「メイン オブジェクト」は作成されません。
public class Main extends Application {
Sub sub = new Sub();
int a;
// stuff
public void aMethod() {
sub.subMethod();
}
}
Sub: このクラスは、変数 a を変更することのみを想定しており、「サブオブジェクト」を作成するコンストラクターは含まれていません。
public class Sub {
//stuff
subMethod(){
int a = 5;
}
この行Main main;
を Sub クラスに入れると、subMethod() を呼び出すと、プログラムによって nullpointer 例外が発生します。わかりました...私は実際にメインオブジェクトを作成していなかったと思います...これまでのところとても良いです。
しかし...行に入れてMain main = new Main();
も、プログラムは「アプリケーションの実行中に例外」エラーを表示し始めません
奇妙なことですが、Main main = new Main();
subMethodに行を入れると...
subMethod(){
Main main = new Main();
int a = 5;
}
...気の毒なことは実際に機能します...(メソッドを呼び出すたびに新しいオブジェクトを作成するため、遅いと思います)
どうしてこんなことに?
そしてそれはどのように正しく行われますか?:) (他のクラスのメソッドを使用して変数を「上書き」します)
よろしくレッド