我是
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”指針,但是當需要此行為的類數量增加時,該解決方案似乎并不優雅.
有任何想法嗎?提前緻謝!
最佳答案 我的建議是實作一個帶接口的回調系統.您的每個類都互相通信應該實作這些.
這些類應該注冊到建立類.
然後,他們可以在建立類中調用一個方法,該方法調用每個已注冊類的接口方法并以這種方式傳遞資料.