gpt4 book ai didi

java - 如何从实例创建者之外的另一个类访问方法

转载 作者:行者123 更新时间:2023-11-30 02:15:24 25 4
gpt4 key购买 nike

我创建了3个java文件:main.java、GUI.java、Serial.java

在 Main 中,我创建了最后两个 java 文件的实例。我可以从 Main 中的 gui 和串行调用方法。我无法从 Main 之外的实例 gui 和串行调用方法。

package main;
public class Main {

public static void main(String[] args) {
GUI gui = new GUI();
gui.setVisible(true);

Serial serial = new Serial();
serial.getPorts();
fillList();
}

public void fillList () {
gui.setList("hoi");
}
}

这是为什么呢?如何从方法 fillList 调用 gui 的方法?感谢您提供任何见解。

最佳答案

实例仅存在于它们声明的方法中,在本例中为构造函数。解决此问题的常见方法是在类中声明一个字段,并在构造函数(或其他方法)中分配该字段的值。尝试:

package main;
public class Main {
// private GUI gui; // replaced this line with the below. See comment 5
private static GUI gui; // this is the new field declaration

public static void main(String[] args) {
gui = new GUI(); // note I removed the class declaration here since it was declared above.
gui.setVisible(true);

Serial serial = new Serial();
serial.getPorts();
fillList();
}

public void fillList () {
gui.setList("hoi"); // now this method has access to the gui field
}
}

关于java - 如何从实例创建者之外的另一个类访问方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48695239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com