我正在学习 OOP 并尝试编写一个简单的程序,该程序将在每次特定变量发生变化时执行某些方法。我有两节课:
public class SomeClass {
private OtherClass object;
public OtherClass getObject() {
return this.object;
}
public void setObject(OtherClass object) {
objectChanged();
this.object = object;
}
private void objectChanged() {
System.out.println("Object has changed");
}
}
public class OtherClass {
private int value = 5;
public int getValue() {
return this.value;
}
public void setValue(int value) {
this.value = value;
}
}
每次更改变量“object”时,都应调用变量 objectChanged。我的第一个天真的想法是将方法调用放在 set 函数中。但是,如果在设置后更改对象怎么办?像这样:
SomeClass someObject = new SomeClass();
OtherClass otherObject = new OtherClass();
someObject.setObject(otherObject); //"Object has changed"
otherObject.setValue(10); //nothing happens yet
我需要 someObject 来实现存储在其中的对象将其值更改为 10,但我该怎么做呢?在OOP中甚至可能吗?