JavaTM 2 Platform
Standard Ed. 5.0

java.util
Ŭ·¡½º Observable

java.lang.Object 
  »óÀ§¸¦ È®Àå java.util.Observable

public class Observable
extends Object

ÀÌ Å¬·¡½º´Â ÇÇ°¨½Ã °´Ã¼, Áï ¸ðµ¨/ºäÆĶó´ÙÀÓÀÇ ¡¸µ¥ÀÌÅÍ¡¹¸¦ ³ªÅ¸³À´Ï´Ù. ÀÌ Å¬·¡½º¸¦ »ó¼ÓÇÏ´Â °Í¿¡ÀÇÇØ ¾îÇø®ÄÉÀ̼ÇÀÌ °¨½Ã¸¦ Èñ¸ÁÇÏ´Â °´Ã¼¸¦ ³ªÅ¸³¾ ¼ö°¡ ÀÖ½À´Ï´Ù.

ÇÇ°¨½Ã °´Ã¼¿¡´Â 1°³ ¶Ç´Â º¹¼öÀÇ ¿ÉÀú¹ö°¡ ÀÖ½À´Ï´Ù. ¿ÉÀú¹ö´Â Observer ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ÀÓÀÇÀÇ °´Ã¼ÀÔ´Ï´Ù. ÇÇ°¨½Ã ÀνºÅϽº·Î º¯°æÀÌ ÀÖÀ¸¸é, ÀÌ Observable notifyObservers ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â ¾îÇø®ÄÉÀ̼ÇÀº ±× ¸ðµç ¿ÉÀú¹ö¿¡ ´ëÇØ, ±×·¯ÇÑ update ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °Í¿¡ ÀÇÇØ º¯°æÀ» ÅëÁöÇÕ´Ï´Ù.

ÅëÁö°¡ Àü´ÞµÇ´Â ¼ø¼­´Â Á¤ÇØÁ® ÀÖÁö ¾Ê½À´Ï´Ù. Observable Ŭ·¡½º¿¡¼­ Á¦°øµÇ´Â µðÆúÆ®ÀÇ ±¸Çö¿¡¼­´Â µî·ÏÇÑ ¼ø¼­·Î Observer¿¡ ÅëÁöÇÕ´Ï´Ù¸¸, ¼­ºê Ŭ·¡½º¿¡¼­´Â ÀÌ ¼ø¼­¸¦ º¯°æÇϰųª º¸ÁõµÇÁö ¾Ê´Â ¼ø¼­¸¦ »ç¿ëÇϰųª thread ¸¶´Ù ÅëÁö¸¦ Àü´ÞÇϰųª ÇÊ¿ä¿¡ µû¶ó¼­, ¼­ºê Ŭ·¡½ºÀÇ ¼­ºê Ŭ·¡½º°¡ ÀÌ ¼ø¼­¿¡ µû¸£´Â °ÍÀ» º¸ÁõÇϰųª ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÀÌ ÅëÁö µµ±¸´Â thread¿Í´Â ¹«°ü°èÇÏ°í, Object Ŭ·¡½ºÀÇ wait ¹× notify µµ±¸ ·ÎºÎÅÍ´Â ¿ÏÀüÇÏ°Ô µ¶¸³ÇÏ°í ÀÖ´Â Á¡¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.

ÇÇ°¨½Ã °´Ã¼°¡ »õ·Ó°Ô ÀÛ¼ºµÈ ½ÃÁ¡¿¡¼­´Â ¿ÉÀú¹ö¼¼Æ®´Â ºñ¾îÀÖ½À´Ï´Ù. 2°³ÀÇ ¿ÉÀú¹ö¿¡ ´ëÇؼ­ equals ¸Þ¼­µå°¡ true¸¦ µ¹·ÁÁÖ´Â °æ¿ì¿¡¸¸, ±×·¯ÇÑ ¿ÉÀú¹ö´Â µ¿ÀÏÇÏ´Ù°í º¸¿©Áý´Ï´Ù.

µµÀÔµÈ ¹öÀü :
JDK1. 0
°ü·Ã Ç׸ñ:
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
 

»ý¼ºÀÚ »ó¼¼

Observable

public Observable()
Á¦·ÎÀÇ ¿ÉÀú¹ö·Î ÇÇ°¨½Ã °´Ã¼¸¦ ±¸ÃàÇÕ´Ï´Ù.

¸Þ¼­µåÀÇ »ó¼¼

addObserver

public void addObserver(Observer  o)
°´Ã¼ÀÇ ¿ÉÀú¹ö ¼¼Æ®¿¡ ¿ÉÀú¹ö¸¦ Ãß°¡ÇÕ´Ï´Ù. ´Ù¸¸, ÀÌ¹Ì ¿ÉÀú¹ö ¼¼Æ®¿¡ ÀÖ´Â ¿ÉÀú¹ö¿Í °°Áö ¾ÊÀº °Í¿¡ ÇÑÁ¤ÇÕ´Ï´Ù. º¹¼öÀÇ ¿ÉÀú¹ö¿¡ ÅëÁö°¡ Àü´ÞµÇ´Â ¼ø¼­´Â ÁöÁ¤µÇÁö ¾Ê½À´Ï´Ù. Ŭ·¡½ºÀÇ ÄÚ¸àÆ®¸¦ ÂüÁ¶ÇϽʽÿÀ.

ÆĶó¹ÌÅÍ:
o - Ãß°¡ÇÏ´Â ¿ÉÀú¹ö
¿¹¿Ü:
NullPointerException - ÆĶó¹ÌÅÍ o°¡ nullÀÎ °æ¿ì

deleteObserver

public void deleteObserver(Observer  o)
°´Ã¼ÀÇ ¿ÉÀú¹ö ¼¼Æ®·ÎºÎÅÍ ¿ÉÀú¹ö¸¦ »èÁ¦ÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå¿¡ null¸¦ °Ç³×Á־, ¹«½¼ È¿°úµµ ¾ø½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
o - »èÁ¦ÇÏ´Â ¿ÉÀú¹ö

notifyObservers

public void notifyObservers()
°´Ã¼°¡hasChanged ¸Þ¼­µå¿¡ ³ªÅ¸³ªµµ·Ï º¯°æµÇ°í ÀÖ¾úÀ» °æ¿ì, ±× ¸ðµç ¿ÉÀú¹ö¿¡ ±×°ÍÀ» ÅëÁöÇØ, ´ÙÀ½¿¡ clearChanged ¸Þ¼­µå¸¦ È£ÃâÇØ, ÀÌ °´Ã¼°¡ ÀÌ¹Ì º¯°æµÈ »óÅ°¡ ¾Æ´Ñ °ÍÀ» ³ªÅ¸³À´Ï´Ù.

°¢ ¿ÉÀú¹öÀÇ update ¸Þ¼­µå°¡ 2°³ÀÇ Àμö (ÀÌ ÇÇ°¨½Ã °´Ã¼¿Í null)·Î È£ÃâÇÕ´Ï´Ù. Áï, ÀÌ ¸Þ¼­µå´Â ´ÙÀ½°ú °°°Ô µË´Ï´Ù.

notifyObservers(null)

°ü·Ã Ç׸ñ:
clearChanged(), hasChanged(), Observer.update(java.util.Observable, java.lang.Object)

notifyObservers

public void notifyObservers(Object  arg)
°´Ã¼°¡hasChanged ¸Þ¼­µå¿¡ ³ªÅ¸³ªµµ·Ï º¯°æµÇ°í ÀÖ¾úÀ» °æ¿ì, ±× ¸ðµç ¿ÉÀú¹ö¿¡ ±×°ÍÀ» ÅëÁöÇØ, ´ÙÀ½¿¡ clearChanged ¸Þ¼­µå¸¦ È£ÃâÇØ, ÀÌ °´Ã¼°¡ ÀÌ¹Ì º¯°æµÈ »óÅ°¡ ¾Æ´Ñ °ÍÀ» ³ªÅ¸³À´Ï´Ù.

°¢ ¿ÉÀú¹öÀÇ update ¸Þ¼­µå°¡ 2°³ÀÇ Àμö (ÀÌ ÇÇ°¨½Ã °´Ã¼¿Í arg)·Î È£ÃâÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
arg - ÀÓÀÇÀÇ °´Ã¼
°ü·Ã Ç׸ñ:
clearChanged(), hasChanged(), Observer.update(java.util.Observable, java.lang.Object)

deleteObservers

public void deleteObservers()
¿ÉÀú¹ö ¸®½ºÆ®¸¦ ¼Ò°ÅÇÕ´Ï´Ù. ÀÌ °á°ú, °´Ã¼ÀÇ ¿ÉÀú¹ö´Â Á¸ÀçÇÏÁö ¾Ê°Ô µË´Ï´Ù.


setChanged

protected void setChanged()
Observable °´Ã¼°¡ º¯°æµÈ °ÍÀ¸·Î¼­ ¸¶Å· ÇÕ´Ï´Ù. hasChanged ¸Þ¼­µå´Â true¸¦ µ¹·ÁÁÖ°Ô µË´Ï´Ù.


clearChanged

protected void clearChanged()
°´Ã¼°¡ ÀÌ¹Ì º¯°æµÈ »óÅ°¡ ¾Æ´Ñ °Í, Áï, ÃÖ½ÅÀÇ º¯°æÀÌ ¸ðµÎ ¿ÉÀú¹ö¿¡ ÅëÁöµÈ °ÍÀ» ³ªÅ¸³À´Ï´Ù. ÀÌ°Í¿¡ ÀÇÇØ hasChanged ¸Þ¼­µå´Â false¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â notifyObservers ¸Þ¼­µå¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î È£ÃâÇÕ´Ï´Ù.

°ü·Ã Ç׸ñ:
notifyObservers(), notifyObservers(java.lang.Object)

hasChanged

public boolean hasChanged()
°´Ã¼°¡ º¯°æµÇ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù.

¹Ýȯ°ª:
°´Ã¼¿¡ ´ëÇØ, clearChanged ¸Þ¼­µåº¸´Ù ³ªÁß¿¡ setChanged ¸Þ¼­µå°¡ ºÒ·Á °¬À» °æ¿ì¿¡¸¸ true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
°ü·Ã Ç׸ñ:
clearChanged(), setChanged()

countObservers

public int countObservers()
Observable °´Ã¼ÀÇ ¿ÉÀú¹öÀÇ ¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
°´Ã¼ÀÇ ¿ÉÀú¹öÀÇ ¼ö

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.