¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ  Á¦10Àå ObjectŬ·¡½º  10.1 ¹è°æ  

  

10.1 ¹è°æ

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ºÎ
ÀúÀÚ:ÃÖ¿µ°ü