¼Ò¼³°°ÀºC#  Á¦4°­ÀÇ C#ÀÇ °´Ã¼ÁöÇâ  14. ÀÚ½ÅÀÇ ¸â¹ö¸¦ °¡¸®Å°´Â this  

 

 

4.14 ÀÚ½ÅÀÇ ¸â¹ö¸¦ °¡¸®Å°´Â this(this.¸â¹ö)

 

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

 

¢Ñ  this.¸â¹ö

Áö±ÝÀº Ŭ·¡½º ³»ºÎÀÇ thisÀÌÁö¸¸ ¾ðÁ¨°¡ »ý¼ºµÉ ³» ¸Þ¸ð¸®ÀÇ this¶ó°í ÇØ¼®ÇÒ ¼ö ÀÖ´Ù. Áï, ¾ðÁ¨°¡ »ý¼ºµÉ ¸Þ¸ð¸®ÀÇ ¸â¹ö°¡ µÇ´Â °ÍÀÔ´Ï´Ù.

 

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

 

&

ThisTest.cs

Ü ÀÚ½ÅÀÇ ¸â¹ö¸¦ ³ªÅ¸³»´Â this¸¦ Å×½ºÆ®ÇÑ ¿¹Á¦

using System;

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(){

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

            Console.WriteLine("name:" + this.name + " number:" + + this.number);

      }

      public void myprint(){

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

            this.print();

      }

        public static void Main() {

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

            th.print();

            th.myprint();                  

      }

}

C:\C#Example\04>csc ThisTest.cs

C:\C#Example\04>ThisTest

-- this¸¦ ÀÌ¿ëÇÑ ¸â¹ö Å×½ºÆ®---

name:È«±æµ¿ number:20

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

-- this¸¦ ÀÌ¿ëÇÑ ¸â¹ö Å×½ºÆ®---

name:È«±æµ¿ number:20

 

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

 

this¸¦ »ç¿ëÇÑ ¿¹

public ThisTest(String name, int number){

          //this¸¦ »ç¿ëÇÏ¿© ¸â¹öÇʵå¿Í ¸Å°³º¯¼öÀÇ ±¸ºÐ

      this.name = name;

      this.number = number;        

}                  

 

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

 

¢Ñ  this.¸â¹öÀÇ ¿¹

À§ÀÇ ¿¹Á¦´Â 4.10ÀýÀÇ º¯¼ö¿Í ¸Þ¼­µå ¹«½ÃÇϱ⿡¼­ Áö¿ªº¯¼ö·Î ÀÎÇØ¼­ ¸â¹öÇʵ尡 ¹«½ÃµÇ´Â ¹®Á¦Á¡À» this·Î ÇØ°áÇϰí ÀÖ½À´Ï´Ù.

 

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

 

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

 

¢Ã ÀÚ½ÅÀÇ ¸â¹ö¸¦ °¡¸£Å°´Â this(this.¸â¹ö)

q                ¸Þ¼­µåÀÇ ¸Å°³º¯¼ö¿Í Ŭ·¡½ºÀÇ ¸â¹öÇʵ带 ±¸ºÐÇØ ÁÖ¾î¾ß ÇÒ ¶§ »ç¿ë

q                thisŰ¿öµå¸¦ »ç¿ëÇÏÁö ¾Ê¾Æµµ ¹«¹æ



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºC# Á¦4°­ÀÇ
ÀúÀÚ:ÃÖ¿µ°ü