|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.util.Observable
public class Observable
이 클래스는, 피감시 객체, 즉 모델/뷰파라다임의 「데이터」를 나타냅니다. 이 클래스를 서브 클래스화하는 것에 의해, 어플리케이션이 감시를 희망하는 객체를 나타낼 수가 있습니다.
피감시 객체에는, 1 개(살) 또는 복수의 옵저버가 있습니다. 옵저버는,Observer 인터페이스를 구현하는 임의의 객체입니다. 피감시 인스턴스로 변경이 있으면(자), 이 Observable
의 notifyObservers
메소드를 호출하는 어플리케이션은, 그 모든 옵저버에 대해, 그러한 update
메소드를 호출하는 것에 의해 변경을 통지합니다.
통지가 전달되는 순서는 정해져 있지 않습니다. Observable 클래스에서 제공되는 디폴트의 구현에서는, 등록한 순서로 Observer 에 통지합니다만, 서브 클래스에서는, 이 순서를 변경하거나 보증되지 않는 순서를 사용하거나 thread 마다 통지를 전달하거나 필요에 따라서, 서브 클래스의 서브 클래스가 이 순서에 따르는 것을 보증하거나 할 수도 있습니다.
이 통지 기구는 thread와는 무관계하고,Object 클래스의 wait 및 notify 기구로부터는 완전하게 독립하고 있는 점에 주의해 주세요.
피감시 객체가 새롭게 작성된 시점에서는, 옵저버세트는 빈 상태(empty)입니다. 2 개의 옵저버에 대해서 equals 메소드가 true 를 돌려주는 경우에만, 그러한 옵저버는 동일하다고 보여집니다.
notifyObservers()
,
notifyObservers(java.lang.Object)
,
Observer
,
Observer.update(java.util.Observable, java.lang.Object)
생성자 의 개요 | |
---|---|
Observable ()
제로의 옵저버로 피감시 객체를 구축합니다. |
메소드의 개요 | |
---|---|
void |
addObserver (Observer o)
객체의 옵저버 세트에 옵저버를 추가합니다. |
protected void |
clearChanged ()
객체가 이미 변경된 상태가 아닌 것, 즉, 최신의 변경이 모두 옵저버에 통지된 것을 나타냅니다. |
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 객체가 변경된 것으로서 마킹 합니다. |
클래스 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
메소드가 2 개의 인수 (이 피감시 객체와 null
)로 불려 갑니다. 즉, 이 메소드는 다음과 같게 됩니다.
notifyObservers(null)
clearChanged()
,
hasChanged()
,
Observer.update(java.util.Observable, java.lang.Object)
public void notifyObservers(Object arg)
hasChanged
메소드에 나타나도록(듯이) 변경되고 있었을 경우, 그 모든 옵저버에 그것을 통지해, 다음에 clearChanged
메소드를 호출해, 이 객체가 이미 변경된 상태가 아닌 것을 나타냅니다.
각 옵저버의 update
메소드가 2 개의 인수 (이 피감시 객체와 arg
)로 불려 갑니다.
arg
- 임의의 객체clearChanged()
,
hasChanged()
,
Observer.update(java.util.Observable, java.lang.Object)
public void deleteObservers()
protected void setChanged()
protected void clearChanged()
notifyObservers
메소드에 의해 자동적으로 불려 갑니다.
notifyObservers()
,
notifyObservers(java.lang.Object)
public boolean hasChanged()
clearChanged
메소드의 호출 후에 setChanged
메소드가 불려 갔을 경우에게만 true
, 그 이외의 경우는 false
clearChanged()
,
setChanged()
public int countObservers()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.