题目
:
设计Src和Dis两个类,Src中有一个被封装的属性,类型为int(要求为非负值),每当通过特定方法更改Src对象中的这个属性后,Dis对象都能得到通知,并向Src发消息获得此属性值。
思路:
在每个类中把另外一个类设置成自己的成员即可
package Work_p73;
public class Src {
public Src(){};
public Src(int i)
{
if(i>0)
this.i=i;
}
private int i=0;
Dis d;
public int getI(){
return i;
}
public void changeI(int c){
i=c;
d.message();
}
public void setD(Dis di)
{
if(di!=null)
d=di;
}
}
package Work_p73;
public class Dis {
Src s;
public Dis(){};
public Dis(Src sr)
{
s=sr;
s.setD(this);
}
public void message()
{
System.out.println("i changed:"+s.getI());
}
}
package Work_p73;
public class Work {
public static void main(String [] args) {
Src s = new Src(1);
Dis d = new Dis(s);
for(int i=0;i<100;i++)
{
s.changeI(i);
}
}
}
运行结果与题意符合