Java 从抽象类中的Jframe类获取变量
我的问题是,我想在java中从jframe类到抽象类获取变量 例如:Java 从抽象类中的Jframe类获取变量,java,Java,我的问题是,我想在java中从jframe类到抽象类获取变量 例如: public class MainWindow extends Frame { String Variable 1; ..... } public abstract class AbstractController { // I need to use variable 1 in this class... } 谢谢大家 我的问题是我想在java中从jframe类到抽象类获取变量 我将建议,
public class MainWindow extends Frame {
String Variable 1;
.....
}
public abstract class AbstractController {
// I need to use variable 1 in this class...
}
谢谢大家
我的问题是我想在java中从jframe类到抽象类获取变量
我将建议,不,你真的不想这样做,你不想直接从一个类中访问和修改另一个类中的变量。您似乎正在创建类似于模型视图控制器或视图控制器的内容,因此您可能希望根据需要传递引用,封装所有变量,并通过受控的公共方法访问变量或“状态”。比如说:
public class View {
private String someStateField;
//.....
public String getSomeStateField() {
return someStateField;
}
public void setSomeStateField(String someStateField) {
this.someStateField = someStateField;
}
}
和控制器
public abstract class AbstractController {
private View view;
public AbstractController(View view) {
this.view = view;
}
public view getView() {
return view;
}
public void someMethod() {
// can now call view methods here
}
}
当然,控制器的具体版本需要具有类似结构的构造函数,并调用super的构造函数:
public class ConcreteController {
public ConcreteController(View view) {
super(view);
}
// ....
}
而主要的方法是将所有这些联系在一起:
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
View view = new View();
AbstractController controller = new ConcreteController(view);
// .....
});
}
当然,您的解决方案的细节将取决于程序的其他结构和设置,如果您需要更详细的答案,请使用更详细的信息和代码更新您的问题,并回复我 在AbstractController
MainWindow测试中=新建MainWindow();test.getVariable1()代码>。考虑命名约定。变量名应始终以小写开头,不能是数字。很可能,您会将视图传递到控制器中,可能是在构造函数参数中,然后控制器会调用视图上的公共方法(如果需要提取其状态)。