我有兩個班,A班和B班。
對于 B 類,它使用 A 類的實體變數。
例如,在 A 類中:
public ClassA {
numA = 0;
characterA = 'x';
}
然后,在創建 ClassB 的物件時,我需要使用數字和字符資訊。
例如,在 B 類中:
public ClassB {
ClassA obj = new ClassA();
numB = obj.getNumA();
characterB = obj.getCharacterA;
}
問題是,如果我使用 setCharacterA('o') 將 characterA 更改為 'o',則 ClassB 中的值(即 characterB)將不會更新。
有沒有一種方法可以通過在 ClassA 中使用 setter 來更新 ClassB 中的值?
uj5u.com熱心網友回復:
您正在創建ClassAin的實體ClassB。
如果您的代碼類似于:
ClassA a = new ClassA();
ClassB b = new ClassB();
a.setCharacterA('y');
然后,ClassAin的字符ClassB不會改變,因為有兩個不同的實體。您需要做的是通過建構式或setter傳遞in的實體ClassA,ClassB例如:
public ClassB {
private ClassA obj;
public ClassB(ClassA obj) {
this.obj = obj;
}
}
那么您可以按如下方式使用它們:
ClassA a = new ClassA();
ClassB b = new ClassB(a);
a.setCharacterA('y');
現在,ClassB由于您將使用相同的實體,因此字符更改也將反映。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/439885.html
下一篇:資料庫內容更改時渲染頁面
