W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.util.Observable
public class Observable
extends Object
此類表示可觀察對(duì)象,或模型視圖范例中的“數(shù)據(jù)”。 它可以被子類化以表示應(yīng)用程序想要觀察的對(duì)象。
一個(gè)可觀察對(duì)象可以有一個(gè)或多個(gè)觀察者。 觀察者可以是任何實(shí)現(xiàn)了 Observer 接口的對(duì)象。 在 observable 實(shí)例更改后,調(diào)用 Observable 的 notifyObservers 方法的應(yīng)用程序會(huì)通過調(diào)用其 update 方法將更改通知其所有觀察者。
遞送通知的順序是未指定的。觀察者類中提供的默認(rèn)實(shí)現(xiàn)將按照觀察者注冊(cè)興趣的順序通知他們,但是子類可以改變這個(gè)順序,不使用保證的順序,在不同的線程上傳遞通知,或者可以保證他們的子類遵循這個(gè)順序,這由他們選擇。
請(qǐng)注意,這種通知機(jī)制與線程無關(guān),與 Object 類的等待和通知機(jī)制完全分離。
當(dāng)一個(gè)可觀察對(duì)象被新創(chuàng)建時(shí),它的觀察者集合是空的。 當(dāng)且僅當(dāng)equals方法為他們返回true時(shí),兩個(gè)觀察者被認(rèn)為是相同的。
構(gòu)造函數(shù) | 描述 |
---|---|
Observable() | 構(gòu)造一個(gè)具有零個(gè)觀察者的 Observable。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
void | addObserver(Observer o) | 將一個(gè)觀察者添加到該對(duì)象的觀察者集合中,前提是它與集合中的某個(gè)觀察者不同。 |
protected void | clearChanged() | 指示此對(duì)象不再更改,或者它已經(jīng)通知所有觀察者其最近的更改,因此 hasChanged 方法現(xiàn)在將返回 false。 |
int | countObservers() | 返回此 Observable 對(duì)象的觀察者數(shù)量。 |
void | deleteObserver(Observer o) | 從該對(duì)象的觀察者集中刪除一個(gè)觀察者。 |
void | deleteObservers() | 清除觀察者列表,使該對(duì)象不再有任何觀察者。 |
boolean | hasChanged() | 測試此對(duì)象是否已更改。 |
void | notifyObservers() | 如果該對(duì)象發(fā)生了變化,如 hasChanged 方法所示,則通知其所有觀察者,然后調(diào)用 clearChanged 方法以指示該對(duì)象不再更改。 |
void | notifyObservers(Object arg) | 如果該對(duì)象發(fā)生了變化,如 hasChanged 方法所示,則通知其所有觀察者,然后調(diào)用 clearChanged 方法以指示該對(duì)象不再更改。 |
protected void | setChanged() | 將此 Observable 對(duì)象標(biāo)記為已更改; hasChanged 方法現(xiàn)在將返回 true。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public Observable()
構(gòu)造一個(gè)具有零個(gè)觀察者的 Observable。
public void addObserver(Observer o)
將一個(gè)觀察者添加到該對(duì)象的觀察者集合中,前提是它與集合中的某個(gè)觀察者不同。 未指定將通知傳遞給多個(gè)觀察者的順序。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
o | 要添加的觀察者。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果參數(shù) o 為空。 |
public void deleteObserver(Observer o)
從該對(duì)象的觀察者集中刪除一個(gè)觀察者。 將 null 傳遞給此方法將無效。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
o | 要?jiǎng)h除的觀察者。 |
public void notifyObservers()
如果該對(duì)象發(fā)生了變化,如 hasChanged 方法所示,則通知其所有觀察者,然后調(diào)用 clearChanged 方法以指示該對(duì)象不再更改。
每個(gè)觀察者都有它的更新方法,它使用兩個(gè)參數(shù)調(diào)用:這個(gè)可觀察對(duì)象和 null。 換句話說,這個(gè)方法等價(jià)于:
notifyObservers(null)
public void notifyObservers(Object arg)
如果該對(duì)象發(fā)生了變化,如 hasChanged 方法所示,則通知其所有觀察者,然后調(diào)用 clearChanged 方法以指示該對(duì)象不再更改。
每個(gè)觀察者都有自己的 update 方法,使用兩個(gè)參數(shù)調(diào)用:這個(gè) observable 對(duì)象和 arg 參數(shù)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
arg | 任何對(duì)象 |
public void deleteObservers()
清除觀察者列表,使該對(duì)象不再有任何觀察者。
protected void setChanged()
將此 Observable 對(duì)象標(biāo)記為已更改; hasChanged 方法現(xiàn)在將返回 true。
protected void clearChanged()
指示此對(duì)象不再更改,或者它已經(jīng)通知所有觀察者其最近的更改,因此 hasChanged 方法現(xiàn)在將返回 false。 該方法由 notifyObservers 方法自動(dòng)調(diào)用。
public boolean hasChanged()
測試此對(duì)象是否已更改。
返回:
當(dāng)且僅當(dāng) setChanged 方法的調(diào)用時(shí)間比此對(duì)象上的 clearChanged 方法更近時(shí)才為 true; 否則為 false。
public int countObservers()
返回此 Observable 對(duì)象的觀察者數(shù)量。
返回:
此對(duì)象的觀察者數(shù)量。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: