有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我目前正在做一个小的模拟项目,我创建了一个控制对象,它创建了几个帮助对象,并运行模拟或“游戏”循环。 其中一个帮助对象是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) 个答案

  1. # 1 楼答案

    让我们从第一原理来看这个问题

    你需要什么,才能对一个对象调用一个方法?您需要对要调用方法的对象的引用

    如果希望帮助对象调用控制对象上的方法,则帮助对象需要对控制对象的引用

    如何在对象中设置值(或引用)?调用setter方法或在构造函数中传递值

    TL;DR

    因此,在构造助手对象时,传递对控制对象的引用,以便它们可以调用回控制对象

  2. # 2 楼答案

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