[英]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.