java.lang.Object java.util.Observable
public class Observable
此类表示模型视图范例中的 observable 对象,或者说“数据”。可将其子类化,表示应用程序想要观察的对象。
一个 observable 对象可以有一个或多个观察者。观察者可以是实现了 Observer 接口的任意对象。一个 observable 实例改变后,调用 Observable
的 notifyObservers
方法的应用程序会通过调用观察者的 update
方法来通知观察者该实例发生了改变。
未指定发送通知的顺序。Observable 类中所提供的默认实现将按照其注册的重要性顺序来通知 Observers,但是子类可能改变此顺序,从而使用非固定顺序在单独的线程上发送通知,或者也可能保证其子类遵从其所选择的顺序。
注意,此通知机制与线程无关,并且与 Object 类的 wait 和 notify 机制完全独立。
新创建一个 observable 对象时,其观察者集是空的。当且仅当 equals 方法为两个观察者返回 true 时,才认为它们是相同的。
notifyObservers()
,
notifyObservers(java.lang.Object)
,
Observer
,
Observer.update(java.util.Observable, java.lang.Object)
构造方法摘要 | |
---|---|
Observable() 构造一个带有零个观察者的 Observable。 |
方法摘要 | |
---|---|
void |
addObserver(Observer o) 如果观察者与集合中已有的观察者不同,则向对象的观察者集中添加此观察者。 |
protected void |
clearChanged() 指示对象不再改变,或者它已对其所有的观察者通知了最近的改变,所以 hasChanged 方法将返回 false。 |
int |
countObservers() 返回 Observable 对象的观察者数目。 |
void |
deleteObserver(Observer o) 从对象的观察者集合中删除某个观察者。 |
void |
deleteObservers() 清除观察者列表,使此对象不再有任何观察者。 |
boolean |
hasChanged() 测试对象是否改变。 |
void |
notifyObservers() 如果 hasChanged 方法指示对象已改变,则通知其所有观察者,并调用 clearChanged 方法来指示此对象不再改变。 |
void |
notifyObservers(Object arg) 如果 hasChanged 方法指示对象已改变,则通知其所有观察者,并调用 clearChanged 方法来指示此对象不再改变。 |
protected void |
setChanged() 标记此 Observable 对象为已改变的对象;现在 hasChanged 方法将返回 true。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public Observable()
方法详细信息 |
---|
public void addObserver(Observer o)
o
- 要添加的观察者。
NullPointerException
- 如果参数 o 为 null。
public void deleteObserver(Observer o)
null
将使其无效。
o
- 要删除的观察者。
public void notifyObservers()
hasChanged
方法指示对象已改变,则通知其所有观察者,并调用
clearChanged
方法来指示此对象不再改变。
每个观察者都有其 update
方法,其调用参数有两个:observable 对象和 null
。换句话说,此方法等效于:
notifyObservers(null)
public void notifyObservers(Object arg)
hasChanged
方法指示对象已改变,则通知其所有观察者,并调用
clearChanged
方法来指示此对象不再改变。
每个观察者都有其 update
方法,其调用参数有两个:observable 对象和 arg
参数。
arg
- 任意对象。
clearChanged()
,
hasChanged()
,
Observer.update(java.util.Observable, java.lang.Object)
public void deleteObservers()
protected void setChanged()
protected void clearChanged()
notifyObservers
方法自动调用此方法。
public boolean hasChanged()
setChanged
方法,而不是
clearChanged
方法时,才返回
true
;否则返回
false
。
clearChanged()
,
setChanged()
public int countObservers()