Object Ŭ·¡½º´Â Àڹ٠Ŭ·¡½º °èÃþ±¸Á¶¿¡ Á¸ÀçÇÏ´Â ÃÖ»óÀ§ Ŭ·¡½ºÀÔ´Ï´Ù. Áï, ¸ðµç Ŭ·¡½º´Â Object Ŭ·¡½º·ÎºÎÅÍ »ó¼ÓÀÌ ½ÃÀ۵Ǵ °ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ ¾î¶°ÇÑ Å¬·¡½ºµµ »ó¼ÓÀ» ÇÏÁö ¾Ê¾Ò´Ù¸é ÀÚµ¿À¸·Î ObjectŬ·¡½º¸¦ »ó¼ÓÇÑ °ÍÀ̳ª ¸¶Âù°¡Áö ÀÔ´Ï´Ù. ¾Æ·¡ÀÇ ¿¹¸¦ Çѹø Âü°í ÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.
ObjectTestMain.java |
class ObjectTest1{ } class ObjectTest2 extends Object{ } public class ObjectTestMain{ public static void main(String[] args){ ObjectTest1 obj1 = new ObjectTest1(); System.out.println("ObjectTest1:" + obj1.toString()); ObjectTest2 obj2 = new ObjectTest2(); System.out.println("ObjectTest12" + obj2.toString()); } } |
C:\examples\10.Object>javac ObjectTestMain.java C:\examples\10.Object>java ObjectTestMain ObjectTest1:ObjectTest1@1fcc69 ObjectTest12ObjectTest2@1fef6f |
ÀÌ ¿¹Á¦¿¡¼ Object¸¦ »ó¼ÓÇÑ °ÍÀ̳ª ÇÏÁö ¾ÊÀº °ÍÀ̳ª ¶È°°ÀÌ ObjectÀÇ ¸â¹ö¸Þ¼µåÀÎ toString()¸Þ¼µå¸¦ È£Ãâ ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº ObjectTest1ÀÌ ÀÚµ¿À¸·Î ObjectŬ·¡½º¸¦ »ó¼ÓÇϱ⠶§¹®ÀÔ´Ï´Ù. ±×¸®°í ÀÚ¹Ù´Â ÀÚµ¿À¸·Î java.lang.*À» importÇϱ⠶§¹®¿¡ ObjectŬ·¡½º¿¡ ´ëÇÑ ¶óÀ̺귯¸® import¶ÇÇÑ Çʿ䰡 ¾ø½À´Ï´Ù. ÄÄÆÄÀÏ ÇÒ ¶§ ³»ºÎÀûÀ¸·Î ¶óÀ̺귯¸®¸¦ importÇÏ´Â ±¸¹®°ú Object Ŭ·¡½º¸¦ »ó¼ÓÇϵµ·Ï Çϱ⠶§¹®ÀÔ´Ï´Ù.
ObjectŬ·¡½º´Â ¾ÆÁÖ Áß¿äÇÑ Å¬·¡½ºÀÔ´Ï´Ù. ±× ³»ºÎÀÇ ¸Þ¼µå¸¦ »ìÆìº¸¸é ¾Ë ¼ö ÀÖÀ¸¸®¶ó »ý°¢µË´Ï´Ù. ÀÏ´Ü, Ŭ·¡½ºÀÇ º¹»ç¸¦ ÇϱâÀ§Çؼ´Â ±âº»ÀûÀ¸·Î cloneÀ̶ó´Â¸Þ¼µå¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ±×¸®°í, °´Ã¼¸¦ printlnÇÒ ¶§ Ãâ·ÂµÇ´Â ³»¿ëÀ» º¯°æÇϱâ À§Çؼ toString¸Þ¼µå¸¦ ÀçÁ¤ÀÇÇϱ⵵ ÇÕ´Ï´Ù. °´Ã¼ÀÇ À¯ÀÏÇÑ ID°ªÀÎ hashCode¸¦ ¾Ë±â À§Çؼ hashCode¸Þ¼µå¸¦ »ç¿ëÇϱ⵵ ÇÏ¸ç ¹Ì¼¼ÇÑ µ¿±âÈ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ wait¿Í notify¸Þ¼µå¸¦ »ç¿ëÇÕ´Ï´Ù. °´Ã¼ÀÇ ¸Þ¸ð¸®¸¦ °¡»ó¸Ó½Å¿¡¼ Á¦°ÅÇϱâÀ§Çؼ °¡ºñÁöÄÝ·ºÅͰ¡ È£ÃâÇÑ´Ù´Â finalizeµµ ÀÖ½À´Ï´Ù. ±×¸®°í Ŭ·¡½ºÀÇ µî·ÏÁ¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Â getClass¸Þ¼µåµµ ÀÖ½À´Ï´Ù. ¸¶Áö¸·À¸·Î °´Ã¼¸¦ ºñ±³ÇÒ ¼ö ÀÖ´Â equals¸Þ¼µåµµ ÀÖ½À´Ï´Ù. ÀÌ·± ÀÏÀº Àß ¾øÁö¸¸ ÀÌ Å¬·¡½ºÀÇ ¸ðµç ¸Þ¼µå¸¦ Á¤¸®ÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ÀÌ Àå¿¡¼´Â ÀÌ ¸Þ¼µå¿¡ °ü·ÃµÈ »çÇ׵鸸À» ´Ù·ç°Ô µÉ °ÍÀÔ´Ï´Ù.
n public final Class getClass(): °´Ã¼ÀÇ ½ÇÁ¦ ÀÚ·áÇüÀΠŬ·¡½º¸¦ ¾ò½À´Ï´Ù.
n public int hashCode(): °´Ã¼¸¦ À§ÇÑ ÇØ½¬ ÄÚµå °ªÀ» ¾ò½À´Ï´Ù.
n public boolean equals(Object obj): ÁÖ¾îÁø °´Ã¼¿Í °°Àº ³»¿ëÀ» °¡Áö°í ÀÖ´Â Áö¸¦ °Ë»çÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î, ÇÏÀ§Å¬·¡½º´Â equals ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇÇÕ´Ï´Ù.
n protected Object clone() throws CloneNotSupportedException: °´Ã¼ ÀÚ½ÅÀ» º¹Á¦ÇÏ¿© ¶È°°Àº °´Ã¼¸¦ Çϳª ´õ »ý¼ºÇÕ´Ï´Ù.
n public String toString(): °´Ã¼¿¡ ´ëÇØ Ç¥ÇöÇϰí ÀÖ´Â ¹®ÀÚ¿À» ¾ò½À´Ï´Ù. ÀϹÝÀûÀ¸·Î, ÇÏÀ§Å¬·¡½º´Â toString ¸Þ¼Òµå¸¦ ÀçÁ¤ÀÇÇÕ´Ï´Ù.
n public final void notify():wait¸Þ¼µå È£Ãâ·Î ÀÎÇÏ¿© BlockingµÇ¾úÀ» ¶§, ÇϳªÀÇ ½º·¹µå¸¦ Runnable»óÅ·Π¸¸µé¾î ÁÝ´Ï´Ù.
n public final void notifyAll():wait¸Þ¼µå È£Ãâ·Î ÀÎÇÏ¿© BlockingµÇ¾úÀ» ¶§, ƯÁ¤ °øÀ¯ÀÚ¿ø°ú °ü·ÃµÇ¾îÁø ¸ðµç ½º·¹µå¸¦ Runnable»óÅ·Π¸¸µé¾î ÁÝ´Ï´Ù.
n public final void wait() throws InterruptedException,
n public final void wait(long timeout) throws InterruptedException,
n public final void wait(long timeout, int nanos) throws InterruptedException: synchronized µÈ ¸Þ¼µå ³»¿¡¼ ÇöÀçÀÇ ½º·¹µå¸¦ NotRunnable»óÅ·Π¸¸µé¾î¼ Blacking½Ãŵ´Ï´Ù. ´ë±â »óÅ·Π¸¸µå´Â °ÍÀÔ´Ï´Ù.
n protected void finalize() throws Throwable: ¾²·¹±â ¼öÁý±â°¡ ÀÌ °´Ã¼¿¡ ´ëÇÑ ÂüÁ¶°¡ ÀüÇô ¾ø´Ù°í °áÁ¤ÇßÀ» °æ¿ì, ¾²·¹±â ¼öÁý±â¿¡ ÀÇÇØ ³»ºÎÀûÀ¸·Î È£ÃâµÇ´Â ¸Þ¼ÒµåÀÔ´Ï´Ù. ´Ù½Ã ¸»Çؼ, ÀÌ °´Ã¼°¡ ÇöÀç ÀüÇô »ç¿ëµÇÁö ¾Ê´Â´Ù°í ÆÇ´ÜµÇ¸é ¾²·¹±â ¼öÁý±â°¡ ¾Ë¾Æ¼ finalize¸¦ È£ÃâÇÏ¿© °´Ã¼ÀÇ ¸Þ¸ð¸®¸¦ Á¦°ÅÇÕ´Ï´Ù.
ÀÌ ¸Þ¼µåµéÀ» Àß °üÂûÇØº¸¸é protected¶ó´Â °Íµµ 2°³³ª ÀÖ½À´Ï´Ù. ±×¸®°í ÀçÁ¤ÀÇÇÒ ¼ö ¾ø´Â final¸Þ¼µåµµ 11°³ÀÇ ¸Þ¼µåÁß 6°³³ª µË´Ï´Ù. Áï, ¿ÜºÎ¿¡¼ »ç¿ëÇÒ ¼ö ¾ø´Â ¸Þ¼µå°¡ 11°³Áß 8°³³ª µÈ´Ù´Â ¸»ÀÔ´Ï´Ù. ÀÌ ¸Þ¼µå¸¦ ´Ù ¾Ë¸é ÀÚ¹ÙÀÇ °í¼ö°¡ µÉ °Í °°Àº ±âºÐÀÌ µéÁö ¾Ê½À´Ï±î? »ç½Ç Object´Â °¡»ó¸Ó½ÅÀÇ ¸Þ¸ð¸®¿Í Á÷Á¢ÀûÀ¸·Î °ü·ÃÀÌ ÀÖ´Â ¾ÆÁÖ Áß¿äÇÑ ¸Þ¼µå¸¸ ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼µå¸¦ ÀüºÎ ÇϳªÇϳª °üÂûÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ ÀúÀÚ:ÃÖ¿µ°ü |