Student1.java
package observer;
import java.util.Observable;
import java.util.Observer;
public class Student1 implements Observer {
@Override
public void update(Observable o, Object arg) {
System.out.println(arg + " say class is over! "
+ this.getClass().getName());
}
}
Student2.java
package observer;
import java.util.Observable;
import java.util.Observer;
public class Student2 implements Observer {
@Override
public void update(Observable o, Object arg) {
System.out.println(arg + " say class is over! "
+ this.getClass().getName());
}
}
Teacher.java
package observer;
import java.util.Observable;
public class Teacher extends Observable {
private String name;
public Teacher(String name) {
super();
this.name = name;
}
public void endClass() {
//important
setChanged();
notifyObservers(name);
}
}
Test.java
package observer;
public class Test {
public static void main(String[] args) {
Teacher teacher = new Teacher("Teacher Li");
teacher.addObserver(new Student1());
teacher.addObserver(new Student2());
teacher.endClass();
}
}
result:
Teacher Li say class is over! observer.Student2
Teacher Li say class is over! observer.Student1