如何从在object1中创建的object2调用object1的方法

时间:2019-05-22 22:38:13

标签: java

我目前正在做一个小型仿真项目,在其中创建一个控制对象,该对象创建多个帮助对象并运行仿真或“游戏”循环。 这些帮助对象之一是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?
    }
}

2 个答案:

答案 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);