我目前正在做一个小型仿真项目,在其中创建一个控制对象,该对象创建多个帮助对象并运行仿真或“游戏”循环。 这些帮助对象之一是GUI,我必须在其中实现影响游戏循环(暂停,继续,停止或重置)的按钮。 我不确定是否以及如何从帮助对象中调用属于控制对象的方法。
public static void main(){
first first = new first();
}
public class first(){
public first(){
second second = new second();
boolean loop = true;
while loop{
...
}
}
public void stop(){
this.loop = false;
}
}
public class second(){
public void actionPerformed(ActionEvent e) {
first.stop/ super.stop?
}
}
答案 0 :(得分:1)
让我们从首要原理来看这个问题。
您需要什么才能能够在对象上调用方法?您需要引用要调用该方法的对象。
如果您希望帮助对象在控件对象上调用方法,则该帮助对象需要引用该控件对象。
如何在对象中设置值(或引用)?调用setter方法或在构造函数中传递值。
TL; DR
因此,当您构造辅助对象时,请传递对控制对象的引用,以便它们可以将调用返回给控制对象。
答案 1 :(得分:0)
Second
将需要引用First
的实例,以便在该实例上调用方法。您可以在构造函数中提供它:
public class Second() {
private final First first;
public Second(First first) {
this.first = first;
}
public void actionPerformed(ActionEvent e) {
this.first.stop();
}
}
然后在创建实例时提供该参考:
Second second = new Second(this);