¼Ò¼³°°ÀºÀÚ¹Ù1ºÎ  4Àå. Class for Java  thisÀÇ °³³ä  

 

4.6 thisÀÇ °³³ä

4.6.1 this¶õ?

this¶õ Ŭ·¡½º ³»¿¡¼­ Ŭ·¡½º°¡ °¡Áö°í ÀÖ´Â ¸â¹öÇÊµå ¶Ç´Â ¸â¹ö ¸Þ¼Òµå¸¦ Á÷Á¢ ÂüÁ¶ÇÒ ¼ö ÀÖ´Â ÀÚ½ÅÀÇ ÂüÁ¶ º¯¼öÀÔ´Ï´Ù. ÀÌ°Ô ¹«½¼ ¸»À̳İí¿ä. ÀÌ°Ô ¹«½¼ ¸»ÀÎÁö ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. this¸¦ »ç¿ëÇÒ ¶§´Â 3°¡Áö ¹æ¹ýÀ» ÀÌ¿ëÇϰí ÀÖ½À´Ï´Ù. ±× ¿¹´Â ¾Æ·¡¿Í °°½À´Ï´Ù.

 

n        this.¸â¹öÇʵå, this.¸â¹ö¸Þ¼­µå

n        this

n        this(¸Å°³º¯¼ö);

 

ÀÌ ¿¹¸¦ ¾Ë¾Æº¸¸é¼­ thisÀÇ °³³ä¿¡ Á¢±Ù ÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

4.6.2 thisÀÇ ÀǹÌ

 ¸ÕÀú this¿¡ ´ëÇÑ Á¤ÀǺÎÅÍ ÇØ°á ÇØ º¸µµ·Ï ÇÏÁÒ. this¸¦ ´ÙÀ½°ú °°ÀÌ Ç®¾î¼­ À̾߱â ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

n        Ŭ·¡½º ³»¿¡¼­ Ŭ·¡½º°¡ °¡Áö°í ÀÖ´Â º¯¼ö ¶Ç´Â ¸Þ¼Òµå¸¦ Á÷Á¢ ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù.

n        Ŭ·¡½º ³»¿¡¼­ ÀÚ½ÅÀÇ ¸â¹öµéÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº ´ç¿¬ÇÑ ÀÏÀÔ´Ï´Ù.

n        ÀÚ½ÅÀ» ÂüÁ¶ÇÏ´Â °´Ã¼ º¯¼ö this¸¦ ÀÌ¿ëÇÏ¿© ¸â¹ö¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

n        µðÀÚÀΟÀÓ¿¡ ÀÚ±â ÀÚ½ÅÀ» Á÷Á¢ ÂüÁ¶ÇÒ ¼ö ÀÖ´Â °´Ã¼ º¯¼öÀÔ´Ï´Ù.

n        µðÀÚÀΟÀÓ¿¡ ÀÚ±â ÀÚ½ÅÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ´Â À¯ÀÏÇÑ Å°¿öµåÀÔ´Ï´Ù.

 

ÀڱⰡ ÀÚ±â ÀÚ½ÅÀ» ÂüÁ¶ÇÑ´Ù´Â Àǹ̰¡ ¹«¾ùÀϱî¿ä. ºÐ¸íÈ÷ ¿©·¯ºÐÀº this¸¦ Ŭ·¡½ºÀÇ µðÀÚÀΟÀÓ¿¡ »ç¿ë ÇÒ ¼ö ÀÖ½À´Ï´Ù. this´Â µðÀÚÀΟÀÓ¿¡ »ç¿ëÇÏ´Â °ÍÀÌÁö ½ÇÇàŸÀÓ¿¡ Á÷Á¢ ¿©·¯ºÐÀÌ »ç¿ëÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ÀÚ¹Ù °¡»ó ¸Ó½ÅÀÌ »ç¿ëÇÏ´Â °ÍÀ̶ó°í ¸» ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

Ŭ·¡½º¸¦ µðÀÚÀÎ ÇÒ ¶§´Â ¾ÆÁ÷ ¸Þ¸ð¸®°¡ ÇÒ´çµÇÁö ¾ÊÀº ¼ø°£ÀÔ´Ï´Ù. ¾ðÁ¨°¡´Â ÇÒ´ç µÇ°ÚÁÒ. ÇÏÁö¸¸ ¾ðÁ¨°¡ ÇÒ´çµÉ ÁÖ¼ÒÀÇ ÂüÁ¶ °ªÀº ¾ÆÁ÷ ¹ÌÁ¤ÀÔ´Ï´Ù. °´Ã¼¸¦ »ý¼ºÇϱâ Àü ´Ü°è¿¡ ±× ÁÖ¼Ò¸¦ this¶ó°í ĪÇϰí ÇÒ´çµÇ´Â ¼ø°£ this´Â ÇÒ´ç µÇ´Â ¸Þ¸ð¸®ÀÇ ÂüÁ¶°ªÀ» °®°Ô µÈ´Ù¸é this´Â µðÀÚÀΟÀÓ¿¡ ½ÇÇàŸÀÓÀÇ ÁÖ¼Ò¸¦ ¾Æ´Â °Íó·³ ÇൿÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¦°¡ ¼³¸íÇØ ³õ°íµµ ¸ðÈ£Çϳ׿ä. ±×·¸´Ù¸é ÀÌ·¸°Ô ÇØ º¸½Ê½Ã¿À. this¸¦ ¡°¾ðÁ¨°¡ »ý¼ºµÇ¾îÁú ³» ÁÖ¼ÒthisÀÇ¡±¶ó´Â °£´ÜÇÑ ´Ü¾î¸¦ ¹Ù²Ù¾î¼­ ÇØ¼®ÇØ º¸½Ê½Ã¿À.

À§ÀÇ ±×¸²Àº this°¡ ÃʱâÈ­ µÇ´Â ¼ø°£À» º¸¿© ÁÖ°í ÀÖ½À´Ï´Ù. µðÀÚÀΟÀÓ¿¡¼­ Ŭ·¡½º´Â ¾ÆÁ÷ µ¥ÀÌÅÍ Å¸ÀÔÀ̱⠶§¹®¿¡ ¸Þ¸ð¸®¸¦ ÇÒ´ç ÇÏÁö ¾ÊÀº »óÅÂÀÔ´Ï´Ù. Ŭ·¡½º°¡ °´Ã¼¸¦ »ý¼ºÇÏ¿© ¸Þ¸ð¸®¸¦ °®´Â ¼ø°£ »ý¼ºµÈ ¸Þ¸ð¸®ÀÇ ÂüÁ¶°ªÀ» °´Ã¼º¯¼ö°¡ °¡Áö°Ô µË´Ï´Ù.

 

n         Top a = new Top();

n         Top b = new Top();

n         Top c = new Top();

n         Top d = new Top();

 

À§ÀÇ ±×¸²¿¡¼­ 4°³ÀÇ ÂüÁ¶ °ª a, b, c, d¸¦ »ý¼ºÇϰí ÀÖ½À´Ï´Ù. ¹®Á¦´Â ÀÌ ÂüÁ¶ °ªµéÀº ¸Þ¸ð¸®°¡ »ý¼ºµÇ´Â ¼ø°£ÀÇ ÂüÁ¶ °ªÀ̶ó´Â °ÍÀÔ´Ï´Ù. À̰ÍÀº ÀϹÝÀûÀÎ ¹æ¹ýÀÔ´Ï´Ù. ÇÏÁö¸¸, this´Â µðÀÚÀΟÀÓ¿¡ ÀÚ½ÅÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ´Â ÂüÁ¶ °ªÀÔ´Ï´Ù. µðÀÚÀΟÀÓ¿¡ Ŭ·¡½ºÀÇ ¸Þ¸ð¸®°¡ »ý¼ºµÇ³ª¿ä. ¾Æ´Õ´Ï´Ù. ±×Àú ÇϳªÀÇ ÇüÅÂÀÏ »ÓÀÔ´Ï´Ù. ±×·¸´Ù¸é ¾î¶»°Ô this°¡ »ý¼ºµÇÁöµµ ¾ÊÀº ÀÚ½ÅÀ» ÂüÁ¶ ÇÒ ¼ö ÀÖÀ»±î¿ä?

 

Àß »ý°¢ ÇØ º¸½Ê½Ã¿À. µðÀÚÀΟÀÓÀÇ ÂüÁ¶°ªÀº ¾ÆÁ÷Àº ºñ¾îÀÖ´Â ÀÖ´Ù°í °¡Á¤ÇÏ°í ½ÇÇàÇÒ ¶§ this¿¡´Ù °¢°¢ÀÇ °´Ã¼°¡ ÇÒ´ç ¹ÞÀº °ªÀ» ³Ö¾î Áشٸé ÇϳªÀÇ this°¡ ¸Þ¸ð¸®°¡ »ý¼ºµÇ´Â ¼ø°£ °¢°¢ÀÇ °´Ã¼¿¡ ´ëÇÑ this°¡ µÇÁö ¾Ê°Ú½À´Ï±î!

 

this¶ó´Â °´Ã¼º¯¼ö´Â ¾ÆÁ÷ ¸¸µé¾îÁöÁöµµ ¾ÊÀº ÀÚ½ÅÀÇ ÂüÁ¶°ªÀ̶ó´Â °¡Á¤ÇÏ¿¡¼­ Ŭ·¡½º ³»¿¡ »ç¿ëµÇ¾îÁý´Ï´Ù. ±×¸®°í ¸Þ¸ð¸®°¡ »ý¼ºµÇ¸é ±× ¶§ °´Ã¼º¯¼ö°¡ °¡Áö´Â °ª°ú °°Àº ÂüÁ¶°ªÀ» °¡Áö°Ô µÇ´Â °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á µðÀÚÀΟÀÓ¿¡ ÇϳªÀÇ À̸§À¸·Î ÀÚ½ÅÀ» ÂüÁ¶ÇÏ°í ½ÇÇà ŸÀÓ¿¡¼­´Â °¢°¢¿¡ Àû¿ë µÇ¾îÁú ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.

 

 

4.6.3 this.¸â¹öÇʵå, ths.¸â¹ö¸Þ¼­µå

 thisÀÇ »ç¿ë¹ý Áß¿¡¼­ this¸¦ ÀÌ¿ëÇÏ¿© ÀÚ½ÅÀ» ÂüÁ¶ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. Ŭ·¡½º ³»¿¡¼­ »ç¿ëµÇ¾îÁö´Â ¸â¹öÇʵå¿Í ¸â¹ö¸Þ¼­µå¸¦ »ç¿ëÇÒ ¶§ this¸¦ »ç¿ëÇÏ´Â °Í°ú ÇÏÁö ¾Ê´Â °ÍÀº µ¿ÀÏÇÕ´Ï´Ù. ±ÍÂú±â ¶§¹®¿¡ this¸¦ »ç¿ëÇÏÁö ¾ÊÁö¸¸ this¸¦ Ç¥½ÃÇÑ´Ù¸é ÄÚµå´Â ´õ¿í ¸íÈ®ÇØÁý´Ï´Ù. Äڵ尡 ±æ¾îÁö¸é »ç¿ëÇÏ´Â º¯¼ö°¡ Ŭ·¡½ºÀÇ ¸â¹öÇʵåÀÎÁö ¾Æ´Ï¸é Áö¿ªº¯¼öÀÎÁö È¥µ¿ µÉ ¼ö°¡ ÀÖ½À´Ï´Ù. ¸¸¾à this¸¦ ÀÌ¿ëÇÑ´Ù¸é ¾ÆÁÖ °£´ÜÈ÷ ¸â¹öÀÎÁö ¾Æ´ÑÁö¸¦ ±¸ºÐÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

µðÀÚÀΟÀÓÀÇ this´Â °øÅëµÈ thisÀÌÁö¸¸ ½ÇÇà ŸÀÓÀÇ this´Â »ý¼ºµÇ¾îÁö´Â °´Ã¼ º¯¼öÀÇ ÂüÁ¶°ª°ú °°Àº °ªÀ» °¡Áö±â ¶§¹®¿¡ °¢°¢ÀÇ this°¡ µÇ´Â °ÍÀÔ´Ï´Ù. ¾ÆÁ÷ »ý¼ºµµ µÇÁö ¾ÊÀº ¸Þ¸ð¸®¿¡ ´ëÇÑ ÂüÁ¶°ªÀ» this¶ó´Â °´Ã¼º¯¼ö°¡ ³ªÁß¿¡ ¸Þ¸ð¸®°¡ »ý¼ºµÇ¾îÁö¸é °¡Áú °ÍÀ̶ó´Â °¡Á¤ÇÏ¿¡ »ç¿ëÇÏ´Â °ÍÀÌ´Ï this¸¦ »ç¿ëÇÏ¿© ¸â¹ö¿¡ Á¢±ÙÇϵçÁö ±×³É ¸â¹ö¿¡ Á¢±ÙÇϵçÁö °á±¹¿¡´Â °°Àº °ÍÀÔ´Ï´Ù. ÀÏ´Ü ¿¹¸¦ µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

ThisTest.java(this Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦)

public class ThisTest {

             private int number;

             private String name;

 

             public ThisTest(String name, int number){

                           //this¸¦ ÀÌ¿ëÇÑ ¸Å°³º¯¼ö¿ÍÀÇ ±¸ºÐ

                           this.name = name;

                           this.number = number;        

             }

             public void print(){

                           System.out.println("-- this¸¦ ÀÌ¿ëÇÑ ¸â¹ö Å×½ºÆ®---");

                           System.out.println("name:" + this.name + " number:" + this.number);                 

             }

             public void myprint(){

                           System.out.println("-- this¸¦ ÀÌ¿ëÇÑ ¸Þ¼­µå Å×½ºÆ®---");

                           this.print();

             }

             public static void main(String[] args){

                           ThisTest th = new ThisTest("È«±æµ¿", 20);

                           th.print();

                           th.myprint();                  

             }

}

C:\examples\4. Class for Basic Java>javac ThisTest.java

C:\examples\4. Class for Basic Java>java ThisTest

name:È«±æµ¿ number:20

-- this¸¦ ÀÌ¿ëÇÑ ¸Þ¼­µå Å×½ºÆ®---

name:È«±æµ¿ number:20

 

ÀÌ ThisTestŬ·¡½º¿¡¼­´Â µÎ °³ÀÇ ¸â¹öÇʵ带 °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ ¸â¹öÇʵ忡 Á¢±ÙÇÏ´Â ¹æ¹ýÀº Ŭ·¡½º ³»¿¡¼­´Â name°ú number¸¦ »ç¿ëÇÏ°í ½ÍÀº °÷¿¡ ¸¶À½´ë·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ »ý¼ºÀÚ¸Þ¼­µå¸¦ º»´Ù¸é nameÀÌ Áߺ¹µÇ¾î ÀÖ½À´Ï´Ù. À̰ÍÀº ¸Þ¼­µåÀÇ ¸Å°³º¯¼ö¿Í Ŭ·¡½ºÀÇ ¸â¹öÇʵ尡 µ¿ÀÏÇϱ⠶§¹®¿¡ ±¸ºÐÀ» ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. À̰ÍÀ» ±¸ºÐÇϱâ À§ÇÑ ¹æ¹ýÀ¸·Î this¸¦ »ç¿ëÇÑ´Ù¸é ¸â¹ö¶ó´Â ÀǹÌÀÔ´Ï´Ù. À§ ¿¹Á¦ÀÇ »ý¼ºÀÚ ºÎºÐ¿¡¼­ ÀÌ·¯ÇÑ º¯¼öÀÇ ¾Ö¸Å¼ºÀ» ¸íÈ®ÇÏ°Ô ÇØ°áÇϰí ÀÖ½À´Ï´Ù.

 

public ThisTest(String name, int number){

             //this¸¦ ÀÌ¿ëÇÑ ¸Å°³º¯¼ö¿ÍÀÇ ±¸ºÐ

             this.name = name;

             this.number = number;        

}           

 

¸Å°³º¯¼öÀÇ À̸§µµ nameÀÌ°í ¸â¹öÇʵåÀÇ À̸§µµ nameÀÔ´Ï´Ù. ¾ð¾îÀûÀÎ ¿ø¸®¿¡ ÀÇÇÏ¸é °¡±î¿î º¯¼ö°¡ ´õ Å« ¿µÇâ·ÂÀÌ ÀÖ½À´Ï´Ù. this¸¦ ºÙÀÌÁö ¾ÊÀ¸¸é »ý¼ºÀÚ¸Þ¼­µå³»¿¡ Á¸ÀçÇÏ´Â nameÀº ¸ðµÎ ¸Å°³º¯¼öÀÇ nameÀÔ´Ï´Ù. ÀÌ·¸°Ô µÈ´Ù¸é ¿ÜºÎ¿¡¼­ µé¾î¿À´Â µ¥ÀÌÅ͸¦ ¸â¹öÇʵ忡 ³ÖÀ» ¼ö°¡ ¾ø½À´Ï´Ù.

 

¸¸¾à¿¡ this¸¦ ºÙÀδٸé this´Â ¾ðÁ¨°¡ »ý¼ºµÇ¾îÁú ³» ÁÖ¼ÒthisÀÇ nameÀÌ µÇ¾î ¹ö¸³´Ï´Ù. ÀÌ·¸°Ô µÇ¸é ´ç¿¬È÷ this.nameÀº ¸â¹ö º¯¼öÀÇ nameÀÌ µÇ±â ¶§¹®¿¡ º°´Ù¸¥ ³ë·Â ¾øÀÌ º¯¼öÀÇ À̸§ÀÌ °°¾Æµµ ´Ï²¨ ³»²¨ È®½ÇÇÏ°Ô ±¸º° ÁöÀ» ¼ö ÀÖ½À´Ï´Ù. name°ú number´Â »ý¼ºÀÚ¸Þ¼­µåÀÇ ¸Å°³º¯¼ö¸¦ ¸»ÇÏ´Â °ÍÀ̸ç this.name°ú this.numberÀº ¸â¹öÇʵ带 °¡¸£Å°´Â °ÍÀÔ´Ï´Ù.

 

this¶ó´Â Ű¿öµå´Â ¸â¹ö¶ó´Â °ÍÀ» ¾Ë¸®´Â ÇϳªÀÇ Ç¥½Ã¹æ¹ýÀÌÁö¸¸ ¸¸¾à À§ÀÇ »óȲó·³ Ư¼öÇÑ °æ¿ì°¡ ¾Æ´Ï¸é thisŰ¿öµå¸¦ »ç¿ëÇÏÁö ¾Ê¾Æµµ ¹«¹æÇÏ´Ù. ÇÏÁö¸¸ thisŰ¿öµå¸¦ »ç¿ëÇÏ¿© ¾î´À ¼Ò¼ÓÀÇ ¸Þ¼­µåÀÎÁö º¯¼öÀÎÁö¸¦ ºÐ¸íÈ÷ ÇÑ´Ù¸é ÄÚµå´Â ´õ¿í ¸íÈ®ÇØ Áý´Ï´Ù. Ŭ·¡½º ³»¿¡ ¸ðµç ¸â¹ö´Â this¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç »ç¿ëÇÏÁö ¾Ê¾Æµµ »ó°üÀº ¾ø½À´Ï´Ù.

 

 

4.6.4 this

this°¡ È¥ÀÚ¼­ ÀÌ¿ëµÇ¸é ÀÚ½ÅÀÇ ÂüÁ¶°ªÀ» ÀǹÌÇÕ´Ï´Ù. ÇÏÁö¸¸ ÀÌ ÂüÁ¶´Â µðÀÚÀΟÀÓ¿¡¼­ Àû¿ëµÇ¾îÁöÁö¸¸ °á±¹ÀÇ this´Â ¾ðÁ¨°¡ ¸¸µé¾îÁú ¸Þ¸ð¸®ÀÇ ÂüÁ¶°ª thisÀÔ´Ï´Ù. Áï, ÀÌ ¸»Àº ½ÇÇà ŸÀÓ¿¡ this ÀÚü´Â °´Ã¼¸¦ »ý¼ºÇÒ ¶§ °´Ã¼ º¯¼ö°¡ °¡Áö´Â °ª°ú °°Àº °ªÀ» °¡Áö°Ô µË´Ï´Ù. »ý¼ºµÉ °´Ã¼ÀÇ ÂüÁ¶°ª¸¦ ÀÇ¹Ì ÇÏ´Â °ÍÀÔ´Ï´Ù. thisÀÚü¸¦ »ç¿ëÇÏ´Â ¿¹¸¦ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

SpecialThis.java(this Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦)

public class SpecialThis{

    private int i = 0;

    public void plusCount(){

       i++;

    }

public SpecialThis getMySelf(){

             return this;

}

    public void print(){

        System.out.println("member i = " + this.i);

    }

    public static void main(String args[]){

        SpecialThis st = new SpecialThis();

        SpecialThis st2 = st.getMySelf();

                           st.print();

                           st.plusCount();

st.print();

                           st2.plusCount();

        st2.print();

                           st.plusCount();

                    st.print();

    }

}

C:\examples\4. Class for Basic Java>javac SpecialThis.java

C:\examples\4. Class for Basic Java>java SpecialThis

member i = 0

member i = 1

member i = 2

member i = 3

 

this¶ó´Â Ű¿öµå°¡ ¾ø´Ù¸é Ŭ·¡½º´Â ÇöÀç µðÀÚÀΟÀÓÀ̱⠶§¹®¿¡ ÀÚ½ÅÀ» ÂüÁ¶ÇÒ ¹æ¹ýÀº ¾ø½À´Ï´Ù. Àß »ý°¢ÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù. ¾ÆÁ÷ ¸¸µé¾îÁöÁöµµ ¾ÊÀº ÀÚ½ÅÀ» ¾î¶»°Ô ÂüÁ¶ÇÒ ¼ö ÀÖ ÀÖ°Ú½À´Ï±î? thisŰ¿öµå´Â ±×Àú this.¸â¹öÇʵå, this.¸â¹ö¸Þ¼­µå ÀÌ·¸°Ô »ç¿ëÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó °´Ã¼°¡ ¸Þ¸ð¸®¸¦ ÇÒ´ç ¹Þ´Â ¼ø°£¿¡ °´Ã¼º¯¼ö°¡ °¡Áö´Â °ª°ú ¶È °°Àº °ªÀ» °¡Áö±â ¶§¹®¿¡ this ÀÚü´Â, µðÀÚÀΟÀÓ¿¡ ÀÚ½ÅÀ» °¡¸£Å°´Â, ÀÚ±âÀÚ½ÅÀÇ °´Ã¼º¯¼ö¶ó°í º¸¸é µË´Ï´Ù.

 

public SpecialThis getMySelf(){

             return this;

}

 

À§ÀÇ ÀÌ ¸Þ¼­µå´Â °´Ã¼°¡ »ý¼ºµÇ¾îÁø ÈÄ È£Ãâ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í this´Â °´Ã¼°¡ »ý¼ºµÇ¾îÁö¸é °´Ã¼º¯¼öÀÇ °ª°ú °°Àº ÂüÁ¶ °ªÀ» °¡Áö°Ô µË´Ï´Ù. ±×·¯´Ï this´Â ÀÚ½ÅÀÇ ÇüÀº ÇöÀç Ŭ·¡½ºÀÇ µ¥ÀÌÅÍŸÀÔ°ú °°½À´Ï´Ù. ¸Þ¼­µåÀÇ ¸®ÅÏŸÀÔ°ú  ¸®ÅÏ µÇ¾îÁö´Â °ÍÀº °°¾Æ¾ß ÇÕ´Ï´Ù. ¿©±â¼­ thisÀÇ Å¸ÀÔÀº ÀÚ½ÅÀÇ ÂüÁ¶º¯¼öÀ̱⠶§¹®¿¡ SpecialThis µ¥ÀÌÅÍ Å¸ÀÔÀÔ´Ï´Ù. ±×¸®°í, ÀÚ½ÅÀ» ¸®ÅÏÇϰíÀÚ ÇÑ´Ù¸é ¡°return this;¡± ¶ó°í ÇÏ¸é µÇ´Â °ÍÀÔ´Ï´Ù.

 

4.6.5 this()

 this()´Â Ŭ·¡½º ÀÚ½ÅÀÇ »ý¼ºÀÚ¸Þ¼­µå¸¦ È£ÃâÇÒ ¶§µµ »ç¿ëÇÕ´Ï´Ù. Ŭ·¡½º ³»¿¡¼­ À¯ÀÏÇÏ°Ô È£ÃâÇÒ ¼ö ¾ø´Â ¸Þ¼­µå°¡ ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼­µå°¡ ¹Ù·Î »ý¼ºÀÚ¸Þ¼­µåÀÔ´Ï´Ù. À̰ÍÀ» È£ÃâÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÏ´Â °ÍÀÌ ¹Ù·Î thisÀÔ´Ï´Ù. ¾Æ·¡´Â this¸¦ ÀÌ¿ëÇÏ¿© »ý¼ºÀÚ¸Þ¼­µå¸¦ È£ÃâÇϰí ÀÖ´Â ¿¹ÀÔ´Ï´Ù.

 

ThisSelf.java(this Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦)

public class ThisSelf{

             private String name;

             private int age;                 

             public ThisSelf(){

                           this("À̸§¾øÀ½");

             }

             public ThisSelf(String name){

                           this(name, -1);                

             }

             public ThisSelf(String name, int age){

                           this.name = name;

                           this.age = age;

                           System.out.println("name:" + name + "  number:" + age);

             }

             public static void main(String[] args){

                           ThisSelf ts1 = new ThisSelf();

                           ThisSelf ts2 = new ThisSelf("È«±æµ¿");

                           ThisSelf ts3 = new ThisSelf("±è»ñ°«", 50);

             }

}

C:\examples\4. Class for Basic Java>javac ThisSelf.java

C:\examples\4. Class for Basic Java>java ThisSelf

name:À̸§¾øÀ½  number:-1

name:È«±æµ¿  number:-1

name:±è»ñ°«  number:50

 

ThisSelfŬ·¡½ºÀÇ µðÆúÆ® »ý¼ºÀÚ¸¦ È£Ãâ ÇßÀ» ¶§

n        this(¡°À̸§¾øÀ½¡±)Àº ThisSelf(String name)¸Þ¼­µå¸¦ È£Ãâ ÇÕ´Ï´Ù.

n        ±×¸®°í ThisSelf(String name)»ý¼ºÀÚ´Â ´Ù½Ã this(name, -1)À̶ó´Â °÷¿¡¼­ ThisSelf(String name, int age)¸¦ È£Ãâ ÇÕ´Ï´Ù.

 

»ý¼ºÀÚ¸Þ¼­µå´Â ¾Æ¹«³ª È£ÃâÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¾Æ´Õ´Ï´Ù. °´Ã¼ÀÇ »ý¼º´ç½Ã ¿©·¯ºÐÀÌ new¿Í °°ÀÌ ¸í½ÃÇØ ÁÖ´Â °ÍÀÌ »ý¼ºÀÚ¸Þ¼­µåÀÔ´Ï´Ù. ±× ¿ÜÀÇ °æ¿ì »ý¼ºÀÚ¸Þ¼­µå¸¦ È£ÃâÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ÀÌ ¹æ¹ý ¹Û¿¡´Â ¾ø½À´Ï´Ù. µðÆúÆ® »ý¼ºÀÚ¸¦ È£ÃâÇÏ¿´Áö¸¸ µðÆúÆ® »ý¼ºÀÚ´Â ÀÚ½ÅÀÇ Å¬·¡½º ³»¿¡ ´Ù¸¥ »ý¼ºÀÚ¸¦ this¸¦ »ç¿ëÇØ¼­ È£ÃâÇϰí ÀÖ½À´Ï´Ù.

 

±×·±µ¥ ¿Ö ÀÌ·¸°Ô º¹ÀâÇÑ ¹æ¹ýÀ» ÀÌ¿ëÇϰí ÀÖÀ»±î¿ä? ¿Ö ÀÚ½ÅÀÇ »ý¼ºÀÚ¸Þ¼­µå¸¦ ÀÌ·¸°Ô º¹ÀâÇÏ°Ô È£Ãâ Çϰí ÀÖÀ»±î¿ä? ±× ´äÀº ¾Ë°í ³ª¸é º°·Î º¹ÀâÇÏÁö ¾Ê´Ù´Â °ÍÀÔ´Ï´Ù. ³ó´ãÀ̱¸¿ä. ÀÚ½ÅÀÇ »ý¼ºÀÚ¸¦ Àç ÀÌ¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. Ŭ·¡½º¸¦ ¸¸µé´Ù º¸¸é, »ó´çÈ÷ ¸¹Àº ÀÛ¾÷À» ÇϳªÀÇ »ý¼ºÀÚ¿¡¼­ ó¸®Çß´Ù¸é ´Ù¸¥ »ý¼ºÀÚ¿¡¼­µµ ´Ù½Ã ¸¹Àº ÀÛ¾÷À» ÇØ ÁÖ°Ô µË´Ï´Ù. ¿©·¯ºÐÀÌ Å¬·¡½º¸¦ µðÀÚÀÎÇÏ´Ù º¸¸é ÀÌ·¯ÇÑ Çö»óÀº ÀÚÁÖ ÀϾ´Ï´Ù. ¹°·Ð À̰ÍÀº »ý¼ºÀÚ Áߺ¹À» ÇÒ ¶§ ¹ß»ýÇÏ´Â ¹®Á¦Á¡ÀÔ´Ï´Ù. ±×·±µ¥ ÀÚ½ÅÀÇ »ý¼ºÀÚ¸Þ¼­µå¸¦ È£ÃâÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¾ø°í, ÀÛ¾÷Àº Áߺ¹ µÈ´Ù¸é °´Ã¼ÁöÇâÀÇ ±âº» ¹ýÄ¢À» À§¹èÇÏ´Â °ÍÀÔ´Ï´Ù. ±×·¡¼­ this¸¦ ÀÌ¿ëÇØ¼­ »ý¼ºÀÚ¸Þ¼­µå¸¦ È£Ãâ ÇÏ´Â ¹æ¹ýÀ» Á¦°øÇϰí ÀÖ´Â °ÍÀÔ´Ï´Ù. ¿©±â¼­ °¡Àå Á¶½ÉÇØ¾ß ÇÏ´Â °ÍÀº »ý¼ºÀÚ¸Þ¼­µå¿¡¼­ ´Ù¸¥ »ý¼ºÀÚ¸Þ¼­µå¸¦ È£Ãâ ÇÒ ¶§ »ý¼ºÀÚ¸Þ¼­µå È£ÃâÀº Á¦ÀÏ À­ºÎºÐ¿¡ »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.

 

4.6.6 °á·Ð

 

thisÀÇ Æ¯Â¡

n         °´Ã¼ Àڽſ¡ ´ëÇÑ ÂüÁ¶°ªÀ» °®½À´Ï´Ù.

n         ¸Å°³º¯¼ö¿Í °´Ã¼ ÀÚ½ÅÀÌ °¡Áö°í ÀÖ´Â º¯¼öÀÇ À̸§ÀÌ °°À» °æ¿ì À̸¦ ±¸ºÐÇϱâ À§ÇØ ÀÚ½ÅÀÌ °¡Áö°í ÀÖ´Â º¯¼ö ¾Õ¿¡ this¸¦ »ç¿ëÇÕ´Ï´Ù.

n         °´Ã¼ »ý¼ºÀÚ ³»¿¡¼­ ´Ù¸¥ »ý¼ºÀÚ¸¦ È£ÃâÇϱâ À§ÇØ »ç¿ëÇÕ´Ï´Ù.

n         °´Ã¼ Àڽſ¡ ´ëÇÑ ÂüÁ¶°ªÀ» ¸Þ¼Òµå¿¡ Àü´ÞÇϰųª ¸®ÅÏÇØ ÁÖ±â À§ÇØ »ç¿ëÇϱ⵵ ÇÕ´Ï´Ù.

n         µðÀÚÀΟÀÓÀÇ this´Â °´Ã¼°¡ »ý¼ºµÇ¾îÁö´Â ¼ø°£¿¡ °´Ã¼º¯¼ö°¡ °¡Áö´Â °ªÀ» °®°Ô µË´Ï´Ù.

this¸¦ »ç¿ëÇÔÀ¸·Î½á, ¸ðÈ£ÇÏÁö ¾Ê°í Á»´õ ¸íÈ®ÇÑ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù1ºÎ
ÀúÀÚ:ÃÖ¿µ°ü