簡體   English   中英

Java的; 從另一個類訪問成員實例變量

[英]Java; Accessing Member Instance Variables From Another Class

我有以下結構:

public class A {
     private javax.swing.JLabel fullName;

     public class B {
             public B() {
                    fullName.setText("Martha Stewart");
             }
     }
     ...
     ...
     ...
}

我的目標是使B(當前為A的子類)位於單獨的類中。

問題是:當我分離兩個類時,我失去了JLabel的.setText()調用的功能。 我意識到如果B在單獨的類中,則必須在A類中編寫一個公共setter方法。

但是,這是不合理的,因為我有大約100個按鈕,並且每個按鈕使用4-5個不同的功能。 為每個函數創建一個getter / setter方法不是合理的恕我直言。

我正在努力尋求更好的解決方案...朋友們,你們中的任何一個都可以幫忙嗎?

B 不是 A的子類。它是A中的嵌套 (內部)類。

但是,您不應嘗試訪問其他類型的字段-這會破壞封裝。 屬性是一個更好的解決方案-或者是一個setFullNameText方法,該方法本身調用fullName.setText() 僅僅因為您有100個按鈕(哎呀!),並不意味着是時候將封裝扔出窗口了。 這確實意味着您可能需要考慮將這100個字段分組為較小的類...

不要讓一個類修改另一個類的屬性,這會破壞封裝。 如果您不能忍受getter和setter,我建議您使用一個配置對象(如地圖),該對象可以提供給主GUI類的構造函數和/或setter。

順便說說:

我有大約100個按鈕

我認為這是一個主要問題。 您應該將GUI分為代表控件組的幾個類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM