我对 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(),程序会给我一个空指针异常。好的...我猜是因为我实际上并没有创建主要对象...到目前为止一切都很好。
但是...如果我输入该行Main main = new Main();
,程序甚至不会开始给我一个“运行应用程序时出现异常”错误
奇怪的是,如果我把这条线Main main = new Main();
放在子方法中......
subMethod(){
Main main = new Main();
int a = 5;
}
...该死的东西实际上有效...(它很慢,猜测是因为每次调用该方法都会创建一个新对象)
为什么呢?
它是如何正确完成的?:) (使用其他类的方法“覆盖”变量)
问候红