我一整天都在工作,所以这可能不是一件容易的事,但我疲惫的大脑却看不到它。如果是这样的话,抱歉这个愚蠢的问题。现在,我的问题。
我希望我的Gui
课程可以访问课程Validator
。在创建所有类的main
类中,创建了Gui
和Validate
类。
像这样:
public class Main{
public static void main(String[] args){
Gui gui = new Gui();
Validate validate = new Validate();
}
}
现在,我希望我的Gui类能够访问Validate类并能够访问它的方法。
这是我的Gui类构造函数:
public class Gui extends JFrame implements ActionListener{
//A list of variables here...
public Gui(){
super("BANK");
//rest of the constructor.
现在,在使用Gui
时如何让我的validate
班级访问super();
?
答案 0 :(得分:3)
你会尝试类似的东西:
public class Gui extends JFrame implements ActionListener{
private Validate validate;
public Gui(Validate validate){
super();
this.validate = validate;
//rest of the constructor.
}
...
}
public class Main{
public static void main(String[] args) {
Validate validate = new Validate();
Gui gui = new Gui(validate);
}
}
答案 1 :(得分:0)
你无法控制那个类的超级作用,所以你要么把它作为参数传递给构造函数并将其保存在变量上,要么使static验证静态,这样每个人都可以访问它(这不是可以推荐的,你只会这样做能够有一个实例)。
public class Main{
public static void main(String[] args){
Validate validate = new Validate();
Gui gui = new Gui(validate);
}
}
public class Gui extends JFrame implements ActionListener{
//A list of variables here...
private Validate validate;
public Gui(Validate val){
super("BANK");
validate = val;
//rest of the constructor.
}
这样Gui就可以引用验证并可以访问任何公共方法和变量。
答案 2 :(得分:0)
如果你的意思是super()
这一行super("BANK");
,那么你不能,super("BANK")
引用JFrame
的构造函数,因为你的Gui类正在扩展JFrame。它只接受String title
和/或GraphicConfiguration gc
的参数。
您需要修改构造函数:
private Validate validate;
public Gui(Validate validate){
super("BANK"); // this super refers to JFrame constructor
this.validate = validate;
}