教材JAVA面向對象程式設計(第二版) 袁紹欣 第五章
一、題目
設計Src和Dis兩個類,Src中有一個被封裝的屬性,類型類 int ,每當通過特定方法更改Src對象中的這個屬性後,Dis對象都能得到通知,并向Src發消息獲得此屬性值。
二、解答
根據題意建立兩個類
Src類:
public class Src {
int num;//被封裝屬性
Dis dis;
int getNum() {
return num;
}
void setNum(Dis d) {
dis = d;
}
Src(int n) {
if (n >= 0) {
num = n;
}
}
void changeNum(int n) {
if (n >= 0) {
num = n;
dis.print();//通知Dis對象
System.out.println("Modified successfully!");
} else {
System.out.println("Modification failed!");
}
}//修改num屬性值
public static void main(String[] args) {
Src src = new Src(0);
Dis dis = new Dis(src);
src.setNum(dis);
for (int i = -2; i <= 5; i++) {
src.changeNum(i);
}//修改測試
}
}
Dis類:
class Dis {
Src src;
Dis(Src s) {
src = s;
}
void print() {
System.out.println("Num值已修改為" + src.getNum());//發消息獲得屬性值
}
}
運作結果
Modification failed!
Modification failed!
Num值已修改為0
Modified successfully!
Num值已修改為1
Modified successfully!
Num值已修改為2
Modified successfully!
Num值已修改為3
Modified successfully!
Num值已修改為4
Modified successfully!
Num值已修改為5
Modified successfully!
測試運作成功