4-3-4.¹Ú½Ì, ¾ð¹Ú½Ì

°ª ŸÀÔ³¢¸® º¯È¯ÇÒ ¶§´Â ¾Ï½ÃÀûÀ¸·Î º¯È¯µÇ°Å³ª ij½ºÆ® ¿¬»êÀÚ·Î ¸í½ÃÀû º¯È¯ÇÑ´Ù. °ª ŸÀÔÀº Å©±â¿Í ÇüŸ¸ ¾à°£ ´Ù¸¦ »Ó ½ºÅÿ¡ ÀúÀåµÈ´Ù´Â Á¡Àº °°¾Æ Çؼ®ÇÏ´Â ¹æ½ÄÀ» Á¶±Ý¸¸ ¼öÁ¤ÇÏ¸é ½±°Ô º¯È¯ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª °ª ŸÀÔ°ú ÂüÁ¶ ŸÀÔ°£ÀÇ º¯È¯Àº ±â¾ïµÇ´Â Àå¼Ò°¡ ´Þ¶ó Ưº°ÇÑ º¯È¯ÀÌ ÇÊ¿äÇÏ´Ù.

¹Ú½Ì(Boxing)Àº °ª ŸÀÔÀ» ÂüÁ¶ ŸÀÔÀ¸·Î º¯È¯ÇÏ¿© °ªÀ» Æ÷ÇÔÇÏ´Â °´Ã¼¸¦ Èü¿¡ »ý¼ºÇÑ´Ù. ¹Ú½ÌÀÇ Çü½ÄÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. ´å³ÝÀÇ ¸ðµç ŸÀÔÀº object·ÎºÎÅÍ ÆÄ»ýµÇ¹Ç·Î object ŸÀÔÀÇ º¯¼ö·Î °ª ŸÀÔÀ» ´ëÀÔ¹ÞÀ¸¸é µÈ´Ù. ´ÙÀ½ÀÌ ¹Ú½ÌÀÇ °¡Àå °£´ÜÇÑ ¿¹ÀÌ´Ù.

 

int i = 1234;

object box = i;

 

object ŸÀÔÀÇ °´Ã¼ÀÎ box´Â ÂüÁ¶ ŸÀÔÀ̹ǷΠÈü¿¡ »ý¼ºµÈ´Ù. ±×¸®°í iÀÇ °ªÀ» ´ëÀԹ޴´Ù. ÀÌ »óȲÀ» ±×¸²À¸·Î ±×·Á º¸¸é ´ÙÀ½°ú °°´Ù.

Èü¿¡ °´Ã¼ box°¡ »ý¼ºµÇ°í box´Â ½ºÅÿ¡ ÀÖ´Â iÀÇ °ª 1234¸¦ °¡Áø´Ù. ¹Ú½ÌÀº ½ºÅÃÀÇ °ªÀ» Èü¿¡ ÀúÀåÇϱâ À§ÇØ °´Ã¼·Î Æ÷ÀåÇÑ´Ù´Â ¶æÀÌ´Ù. ÄÄÆÄÀÏ·¯°¡ ¹Ú½Ì¿¡ ÀÇÇØ ´ÙÀ½°ú °°Àº Àӽà Ŭ·¡½ºÀÇ °´Ã¼¸¦ Èü¿¡ »ý¼ºÇÏ°í °ªÀ» value¿¡ ´ëÀÔÇÑ´Ù.

 

class temp {

     public int value;

}

 

À̶§ ¿ø·¡ º¯¼ö¿Í ¹Ú½ÌµÈ º¯¼ö´Â °íÀ¯ÀÇ ±â¾ïÀå¼Ò¸¦ °¡Áö¸ç º°°³ÀÇ º¯¼öÀÌ´Ù. ¹Ú½ÌÇÒ ¶§ °ªÀÇ »çº»ÀÌ Èü¿¡ »ý¼ºµÇ´Â °Í »ÓÀÌ´Ù. ±×·¡¼­ i°¡ ¹Ù²ï´Ù°í Çؼ­ box°¡ ¿µÇâÀ» ¹ÞÁö ¾ÊÀ¸¸ç ¹Ý´ë ¹æÇâµµ ¸¶Âù°¡ÁöÀÌ´Ù.

¾ð¹Ú½ÌÀº ¹Ú½ÌµÈ ÂüÁ¶ ŸÀÔÀ¸·ÎºÎÅÍ ¿ø·¡ÀÇ °ªÀ» ´Ù½Ã ÃßÃâÇÏ´Â ¿¬»êÀÌ´Ù. ¹Ú½ÌµÈ °´Ã¼¸¦ °ª ŸÀÔÀÇ º¯¼ö·Î ´ëÀÔÇ쵂 À̶§ ij½ºÆ® ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ¾î¶² ŸÀÔÀ¸·Î ÃßÃâÇÒÁö ÁöÁ¤ÇÑ´Ù. ´ÙÀ½ ¹®ÀåÀº ¹Ú½ÌµÈ °´Ã¼ box·ÎºÎÅÍ Á¤¼ö°ªÀ» ÃßÃâÇÏ¿© k¿¡ ´ëÀÔÇÑ´Ù.

 

int k=(int)box;

 

À̶§ ¾ð¹Ú½ÌµÈ °ªÀ» ¹Þ´Â ŸÀÔÀº ¹Ú½ÌµÇ±â ÀüÀÇ ¿ø·¡ ŸÀÔ°ú °°¾Æ¾ß ÇÑ´Ù. int ŸÀÔÀ» ¹Ú½ÌÇØ ³õ°í ¾ð¹Ú½ÌÇÒ ¶§´Â bool·Î ¹Ù²Û´Ù°Å³ª double·Î ¹Ù²Ù¾î¼­´Â ¾ÈµÈ´Ù. ¹Ú½ÌµÇÁöµµ ¾ÊÀº º¯¼ö¸¦ ¾ð¹Ú½ÌÇѴٰųª ¹Ú½ÌµÈ ¿ø·¡ ŸÀÔ°ú ´Ù¸£°Ô ¾ð¹Ú½ÌÇÒ °æ¿ì ij½ºÆÃÀÌ À߸øµÇ¾ú´Ù´Â ¿¹¿Ü°¡ ¹ß»ýÇÑ´Ù.

¹Ú½ÌÀº Èü¿¡ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í °ªÀ» º¹»çÇÏ´Â º¹ÀâÇÑ °úÁ¤À» °ÅÃÄ Ä³½ºÆ® ¿¬»êÀÚº¸´Ù ´À¸®°í ºñÈ¿À²ÀûÀÌ´Ù. ÄÄÆÄÀÏ·¯°¡ ÇÊ¿äÇÒ ¶§ ³»ºÎÀûÀ¸·Î ¹Ú½ÌÀ» ÇϹǷΠ°³¹ßÀÚ°¡ Á÷Á¢ ¹Ú½ÌÇÒ ÇÊ¿ä´Â °ÅÀÇ ¾ø´Ù. ¹Ú½ÌÀº ÂüÁ¶ ŸÀÔÀ» ¹Þ´Â ¸Þ¼­µå¿¡°Ô °ª ŸÀÔÀ» ³Ñ±æ ¶§³ª ¶Ç´Â ±× ¹Ý´ëÀÇ °æ¿ì¿¡ µÎ Çü½Ä°£À» º¯È¯Çϱâ À§ÇØ ÁÖ·Î »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°Àº ¸Þ¼­µå°¡ ÀÖ´Ù°í ÇÏÀÚ.

 

void func(object obj) { }

 

object ŸÀÔÀ» Àμö·Î ¹Þ´Â´Ù´Â °ÍÀº ¸ðµç ŸÀÔÀ» ´Ù ¹Þ´Â´Ù´Â ¶æÀÌ´Ù. ÇÏÁö¸¸ ÂüÁ¶ÇüÀÇ object¿¡ Á¤¼ö³ª ±¸Á¶Ã¼°°Àº °ª ŸÀÔÀ» °ð¹Ù·Î ´ëÀÔÇÒ ¼ö´Â ¾ø´Ù. ±×·¡¼­ ÄÄÆÄÀÏ·¯´Â ½ÇÀμö·Î Àü´ÞµÈ °ª ŸÀÔÀ» ¹Ú½ÌÇÏ¿© object ŸÀÔÀ¸·Î º¯È¯ÇÏ¿© ³Ñ±ä´Ù. ¸Þ¼­µå ³»ºÎ¿¡¼­´Â ¹Ú½ÌµÈ ÂüÁ¶ ŸÀÔÀ» ¿øÇϴ ŸÀÔÀ¸·Î ¾ð¹Ú½ÌÇؼ­ ÃßÃâÇÑ´Ù. ÂüÁ¶ ŸÀÔÀ» ¸®ÅÏÇÒ ¶§µµ ÀÌ·± ¹Ú½Ì/¾ð¹Ú½ÌÀÌ ÇÊ¿äÇÏ´Ù. ¹Ú½ÌÀÌ ÇÊ¿äÇÑ ´õ Á÷°üÀûÀÎ ¿¹´Â ´ÙÀ½ ÄÚµåÀÌ´Ù.

 

string s = 1234.ToString();

 

Á¤¼ö »ó¼ö 1234¸¦ ¹®ÀÚ¿­ º¯¼ö¿¡ ´ëÀÔÇϱâ À§ÇØ ToStringÀ» È£ÃâÇÏ¿© ¹®ÀÚ¿­·Î º¯È¯Çß´Ù. ToStringÀº Ŭ·¡½º ¼Ò¼ÓÀÇ ¸Þ¼­µåÀÌ¸ç °´Ã¼°¡ ÇÊ¿äÇÏ´Ù. ±×·±µ¥ 1234´Â °ª(Literal)ÀÏ »Ó °´Ã¼°¡ ¾Æ´Ï¾î¼­ ¸Þ¼­µå¸¦ È£ÃâÇÒ ¼ö ¾ø´Ù. À̶§ ÄÄÆÄÀÏ·¯´Â 1234¸¦ object ŸÀÔÀ¸·Î ¹Ú½ÌÇÑ ÈÄ ToString ¸Þ¼­µå¸¦ È£ÃâÇÑ´Ù.