私は、Javaにrelativly新たなんだとJavaFXの持つビットをexperimantatingクラスBからメソッドを使用している間、私はクラスAから変数を変更したい使用方法は
メイン:もっぱらこのクラス:メインクラスのthats、それはそのは、実際の「主要被写体」
public class Main extends Application {
Sub sub = new Sub();
int a;
// stuff
public void aMethod() {
sub.subMethod();
}
}
サブを作成していないので、それは、コンストラクタを持っている(primaryStageなどを示して)必要なすべてのものが含まれています陳に捧げるGE変数a、それは「サブオブジェクト」を作成するためのコンストラクタが含まれていません
public class Sub {
//stuff
subMethod(){
int a = 5;
}
私はサブクラスでラインMain main;
を置けば私は場合、プログラムは、私にnullポインタ例外を与えますsubMethod()を呼び出します。 ok ...私は実際には主なオブジェクトを作成していないと思います...これまでのところとても良いです。
しかし...私はラインMain main = new Main();
に入れた場合、プログラムが文句を言わないとしても、「アプリケーションの実行中に例外」私はサブメソッドで行Main main = new Main();
を置けば、けれどもされたエラー
に私に奇妙なことを与え始めます。 ..
subMethod(){
Main main = new Main();
int a = 5;
}
...こいつが実際に動作します...(メソッドのすべての呼び出しでその新しいオブジェクトを作成するためだけでなく、そのスローは推測)
だから、なぜでしょうか?
どのように正しく行われますか? :) (変数を「上書き」するために、他のクラスのメソッドを使用して)
よろしく レッド
実際には動作しません。あなたが5に設定した番号をコンパイルするのは、 'Main'クラスのものと同じではありません。また、メソッドで使用している 'Main'も、他のものと同じインスタンスではありません。 – twain249
あなたのプログラムの_entire_ソースを提供できますか?今は本当に不明です。 –