gpt4 book ai didi

java - 如何正确实现Java类之间的通信

转载 作者:搜寻专家 更新时间:2023-11-01 03:33:27 25 4
gpt4 key购买 nike

我是 Java 编程的初学者,目前正在开发具有更复杂类结构和 GUI 的应用程序。这可能是一个愚蠢的问题,但很难用谷歌搜索,所以我在这里问。

我有一个主类,看起来像这样:

package app;

public class App {
private FirstClass fc;
private SecondClass sc;

public App () {
fc = new FirstClass ();
sc = new SecondClass ();

// ... code continues ...
}
}

假设 SecondClass 是在这个 .java 文件之外定义的(就像 GUI 表单一样)。有没有办法让我从“sc”实例(不传递“this”指针)访问“fc”实例(或 App 实例的其他成员变量)?像这样的东西:

class SecondClass {
public void someMethod() {
getWhoeverCreatedThisInstance().fc.getSomeData();

// ... code continues ...
}
}

如果不是,我做错了什么?我应该以不同的方式设计它吗?也许将“fc”设置为静态?但是,如果我希望我的应用程序的更多类相互通信,我应该将它们全部设为静态吗?那么拥有非静态的东西有什么意义呢?我可以在“SecondClass”的构造函数中传递“App”或“fc”实例的“this”指针,但当需要这种行为的类数量增加时,该解决方案似乎不够优雅。

有什么想法吗?提前致谢!

最佳答案

我的建议是实现一个带接口(interface)的回调系统。您的每个相互通信的类都应该实现这些。这些类应该注册到创建类。然后他们可以在创建类中调用一个方法,该方法调用每个注册类的接口(interface)方法并以此方式传递数据。

这个 SO 答案可能有帮助 https://stackoverflow.com/a/18279545

关于java - 如何正确实现Java类之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40441381/

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