📄 observerdemo.java~1~
字号:
package 观测程序;
/**
这里是一个说明可观测对象的例子。该程序创建了一个叫做Watcher的类,该类实现了
Observer接口。被监控的类叫做BeingWatched,它扩展了Observable。在BeingWatched里,
是counter( )方法,该方法仅是从一个指定的值开始递减计数。它使用sleep( )方法在两次计
数中间等待十分之一秒。每次计数改变时,notifyObservers( )方法被调用,而当前的计数被
作为参数传递给notifyObservers( )方法。这导致了Watcher中的update( )方法被调用,显示当
前的计数值。在main( )内,分别调用observing和observed的Watcher和BeingWatched对象被
创建。然后,observing被增加到对observed的观测程序列表。这意味着每次counter( )调用
notifyObservers( )方法时,observing.update( )方法将被调用。
*/
/* Demonstrate the Observable class and the
Observer interface.
*/
import java.util.*;
// This is the observing class.
class Watcher
implements Observer {
public void update(Observable obj, Object arg) {
System.out.println("update() called, count is " +
( (Integer) arg).intValue());
}
}
// This is the class being observed.
class BeingWatched
extends Observable {
void counter(int period) {
for (; period >= 0; period--) {
setChanged();
notifyObservers(new Integer(period));
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
System.out.println("Sleep interrupted");
}
}
}
}
class ObserverDemo {
public static void main(String args[]) {
BeingWatched observed = new BeingWatched();
Watcher observing = new Watcher();
/* Add the observing to the list of observers for
observed object. */
observed.addObserver(observing);
observed.counter(10);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -