我是
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”实例访问“fc”实例(或App实例的其他成员变量)(不传递“this”指针)?就像是:
class SecondClass {
public void someMethod() {
getWhoeverCreatedThisInstance().fc.getSomeData();
// ... code continues ...
}
}
如果没有,我做错了什么?我的设计应该不同吗?也许将“fc”设置为静态?但是,如果我希望我的应用程序的更多类能够相互通信,我应该将它们全部静态化吗?那么有什么非静态的东西呢?我可以在“SecondClass”的构造函数中传递“App”或“fc”实例的“this”指针,但是当需要此行为的类数量增加时,该解决方案似乎并不优雅.
有任何想法吗?提前致谢!
最佳答案 我的建议是实现一个带接口的回调系统.您的每个类都相互通信应该实现这些.
这些类应该注册到创建类.
然后,他们可以在创建类中调用一个方法,该方法调用每个已注册类的接口方法并以这种方式传递数据.