我是Java編程的初學者,目前我正在開發一個具有更復雜的類結構和GUI的應用程序。這可能是一個愚蠢的問題,但它很難谷歌,所以我在這裏問。如何正確實現Java類之間的通信
我有一個主類,看起來像這樣:
package app;
public class App {
private FirstClass fc;
private SecondClass sc;
public App() {
fc = new FirstClass();
sc = new SecondClass();
// ... code continues ...
}
}
說出二等被此java文件(如GUI形式)的外部定義。有沒有辦法讓我從「sc」實例訪問「fc」實例(或App實例的其他成員變量)(不通過「this」指針)?例如:
class SecondClass {
public void someMethod() {
getWhoeverCreatedThisInstance().fc.getSomeData();
// ... code continues ...
}
}
如果不是,我做錯了什麼?我應該設計這個不同嗎?也許設置「fc」爲靜態?但是如果我想讓更多的應用程序的類彼此通信,我應該讓它們全都是靜態的嗎?那麼,什麼是非靜態的東西呢?我可以在「SecondClass」的構造函數中傳遞「App」或「fc」實例的「this」指針,但是當需要這種行爲的類的數量上升時,該解決方案看起來不夠優雅。
任何想法?提前致謝!
你可以更具體的問題嗎?你想只有一個'FirstClass'實例嗎? – Blip
如果您沒有將'App'(又名'this')傳遞給'SecondClass'構造函數,那麼您認爲'getWhoeverCreatedThisInstance()'是如何工作的,因爲'App' *是誰創建的this-實例? – Andreas
@Blip:是的,只需要一個實例。基本上它是像GUI,數據庫連接等類... –