±âº»ÀûÀ¸·Î ¸®Ç÷º¼ÇÀ» Çϱâ À§Çؼ´Â ClassŬ·¡½º¸¦ ±âº»À¸·Î ¾Ë°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÀÌ °³³äÀº ÀÌ¹Ì 10ÀåÀÇ getClass()¸Þ¼µå ºÎºÐ¿¡¼ ³íÀǸ¦ °ÅÄ£¹Ù ÀÖÁö¸¸, ÀÌ Àý¿¡¼ ´Ù½Ã Á¤¸® Çϵµ·Ï ÇϰڽÀ´Ï´Ù. ¹°·Ð, ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ À§Çؼ´Â 10ÀåÀÇ getClass()¸Þ¼µå¸¦ ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù. ÀÌ °³³ä ¾øÀÌ ¸®Ç÷º¼ÇÀ» ÀÌÇØÇÑ´Ù´Â °ÍÀº ºÒ°¡´ÉÇÑ °ÍÀ̴ϱî¿ä!
String Ŭ·¡½º¸¦ ¿¹¸¦ µé¾î ¼³¸íÇÏÁÒ. String.java¶ó´Â ÆÄÀÏÀÌ ÀÖ¾úÀ» °ÍÀÔ´Ï´Ù. ±×¸®°í String.java¸¦ ÄÄÆÄÀÏ ÇßÀ» ¶§ String.class¶ó´Â ÆÄÀÏÀÌ »ý¼º µÇ¾úÀ¸¸ç, À̰ÍÀ» ¶óÀ̺귯¸® ÇüÅ·Π¸¸µé¾î µÎ¾ú±â ¶§¹®¿¡ ¿©·¯ºÐÀº ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.
ÀÏ´Ü, Àڹ٠Ŭ·¡½º ÆÄÀÏÀ» ·ÎµùÇÏ´Â °¡»ó¸Ó½ÅÀÇ ClassLoader´Â String.classÆÄÀÏÀ» ·ÎµùÇÏ°Ô µË´Ï´Ù. ±×¸®°í, ClassLoader´Â String.class¸¦ ClassŬ·¡½ºÀÇ ÇüÅ·Π¸¸µé¾î¼ °¡»ó¸Ó½Å ³»¿¡ º¸°üÇÏ°Ô µË´Ï´Ù. À̰ÍÀ» ÄÚµùÀ¸·Î Ç¥ÇöÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ µÉ °ÍÀÔ´Ï´Ù.
n Class c = String.class;
ÀÌ¿Í °°Àº ±¸¹®À¸·Î ¿©·¯ºÐµéÀº °¡»ó¸Ó½Å ³»¿¡ String.class¸¦ ·ÎµùÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. À̰ÍÀº StringŬ·¡½ºÀÇ °´Ã¼¸¦ ¸¸µå´Â °ÍÀÌ ¾Æ´Ï¶ó, String.class ±× ÀÚü¸¦ °¡»ó¸Ó½Å¿¡ ·ÎµùÇÏ´Â °ÍÀÔ´Ï´Ù. ClassŬ·¡½º¸¦ ·ÎµùÇÏ´Â ¶Ç ´Ù¸¥ ¹æ¹ýÀº ´ÙÀ½°ú °°Àº ±¸¹®À» »ç¿ëÇÕ´Ï´Ù.
n Class c = Class.forName(¡°java.lang.String¡±);
ÀÌ ±¸¹®Àº ½ºÆ®¸µ(¡°java.lang.String¡±)À» ÀÌ¿ëÇØ¼ ClassŬ·¡½º¸¦ ¾ò´Â ¹æ¹ýÀÔ´Ï´Ù. ÀÌ ¹æ¹ý »Ó¸¸ ¾Æ´Ï¶ó, »ý¼ºµÈ °´Ã¼¿¡¼µµ ClassŬ·¡½º¸¦ ¾òÀ» ¼öµµ ÀÖ½À´Ï´Ù. À̰ÍÀÌ ¸®Ç÷º¼ÇÀ̶ó°í ¸»ÇÒ ¼ö ÀÖ´Â ºÎºÐÀÌÁÒ.
n String s = new String(¡°Hello World¡±);
n Object o = s;//ÀÓÀÇÀÇ °´Ã¼ s°¡ Á¸ÀçÇÑ´Ù¸é °´Ã¼ÀÇ ÇüÀ» ¸ð¸¥´Ù°í °¡Á¤.
n Class c = o.getClass(); à Class c = String.class;
À§ÀÇ ±¸¹®¿¡¼ s¸¦ Upcasting½ÃÄѼ °´Ã¼ o°¡ ¾î¶°ÇÑ °´Ã¼ÀÎÁö ¸ð¸¥´Ù°í °¡Á¤ÇÏÁÒ. °´Ã¼ o¸¦ ÀÌ¿ëÇØ¼ ClassŬ·¡½º¸¦ ¾ò´Â´Ù¸é String.class¸¦ ¾ò´Â °á°ú¿Í °°½À´Ï´Ù. ¸®Ç÷º¼Ç¿¡¼ ClassŬ·¡½º¸¦ ³íÀÇÇÏ´Â °ÍÀº ClassŬ·¡½º°¡ ¸®Ç÷º¼Ç ±â¹ýÀ» »ç¿ëÇÏ´Â ±âº»ÀÌ µÇ±â ¶§¹®ÀÔ´Ï´Ù. ClassŬ·¡½ºÀÇ ¿¹¸¦ Á÷Á¢ °ËÅäÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ ÀúÀÚ:ÃÖ¿µ°ü |