¼Ò¼³°°ÀºC#  Á¦4°­ÀÇ C#ÀÇ °´Ã¼ÁöÇâ  16. »ý¼ºÀÚ¸¦ È£ÃâÇÏ´Â this  

 

 

4.16 »ý¼ºÀÚ¸¦ È£ÃâÇÏ´Â this()

 

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

 

»ý¼ºÀÚ´Â ¾Æ¹«³ª È£ÃâÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¾Æ´Õ´Ï´Ù. °´Ã¼ÀÇ »ý¼º ´ç½Ã ¿©·¯ºÐÀÌ new ¿¬»êÀÚ¿Í °°ÀÌ ¸í½ÃÇØ ÁÖ´Â °ÍÀÌ »ý¼ºÀÚÀÔ´Ï´Ù. ±× ¿ÜÀÇ °æ¿ì »ý¼ºÀÚ¸¦ È£ÃâÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¾ø½À´Ï´Ù. ÀÌ·¸°Ô È£ÃâÇϱâ Èûµç »ý¼ºÀÚ´Â À¯ÀÏÇÏ°Ô this()¸¦ ÅëÇØ¼­ È£ÃâÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ Á¦°øµË´Ï´Ù.

 

¢Ã this()

q                Ŭ·¡½º ÀÚ½ÅÀÇ »ý¼ºÀÚ¸¦ È£ÃâÇÒ ¶§µµ »ç¿ë

q                ÀÚ½ÅÀÇ »ý¼ºÀÚ¸¦ ÀçÀÌ¿ëÇÏ´Â °Í

q                ´Ù¸¥ »ý¼ºÀÚ¸¦ È£ÃâÇÒ ¶§ »ý¼ºÀÚ È£ÃâÀº Á¦ÀÏ À­ºÎºÐ¿¡ »ç¿ëÇØ¾ß ÇÔ

 

 ¾Æ·¡´Â this¸¦ ÀÌ¿ëÇÏ¿© »ý¼ºÀÚ¸¦ È£ÃâÇϰí ÀÖ´Â ¿¹ÀÔ´Ï´Ù.

 

&

ThisSelf.cs

Ü ÀÚ½ÅÀÇ »ý¼ºÀÚ¸¦ È£ÃâÇÏ´Â this()¸¦ Å×½ºÆ®ÇÑ ¿¹Á¦

using System;

public class ThisSelf{

      private string name;

      private int age;                 

        public ThisSelf() : this("À̸§¾øÀ½") {

                Console.WriteLine("¸Å°³º¯¼ö°¡ ¾ø´Â »ý¼ºÀÚ");

      }

      public ThisSelf(string name) : this(name, -1) {

                Console.WriteLine("¸Å°³º¯¼ö°¡ 1°³ÀÖ´Â »ý¼ºÀÚ");

      }

      public ThisSelf(string name, int age) {

            this.name = name;

            this.age = age;

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

                Console.WriteLine("¸Å°³º¯¼ö°¡ 2°³ÀÖ´Â »ý¼ºÀÚ");

      }

        public static void Main() {

            ThisSelf ts1 = new ThisSelf();

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

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

      }

}

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

C:\C#Example\04>ThisSelf

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

¸Å°³º¯¼ö°¡ 2°³ÀÖ´Â »ý¼ºÀÚ

¸Å°³º¯¼ö°¡ 1°³ÀÖ´Â »ý¼ºÀÚ

¸Å°³º¯¼ö°¡ ¾ø´Â »ý¼ºÀÚ

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

¸Å°³º¯¼ö°¡ 2°³ÀÖ´Â »ý¼ºÀÚ

¸Å°³º¯¼ö°¡ 1°³ÀÖ´Â »ý¼ºÀÚ

name:±è»ñ°«  number:50

¸Å°³º¯¼ö°¡ 2°³ÀÖ´Â »ý¼ºÀÚ

 

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

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

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

 

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

 

±×·¡¼­ this¸¦ ÀÌ¿ëÇØ¼­ »ý¼ºÀÚ¸¦ È£Ãâ ÇÏ´Â ¹æ¹ýÀ» Á¦°øÇϰí ÀÖ´Â °ÍÀÔ´Ï´Ù. ¿©±â¼­ °¡Àå Á¶½ÉÇØ¾ß ÇÏ´Â °ÍÀº »ý¼ºÀÚ¿¡¼­ ´Ù¸¥ »ý¼ºÀÚ¸¦ È£Ãâ ÇÒ ¶§, »ý¼ºÀÚ È£ÃâÀº Á¦ÀÏ À­ºÎºÐ¿¡ »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¸¶Áö¸·À¸·Î thisÀÇ Æ¯Â¡¿¡ ´ëÇØ¼­ Çѹø ´õ Á¤¸®ÇØ º¸°Ú½À´Ï´Ù.

 

¢Ã thisÀÇ Æ¯Â¡

q                °´Ã¼ Àڽſ¡ ´ëÇÑ ÂüÁ¶°ª

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

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

q                °´Ã¼ Àڽſ¡ ´ëÇÑ ÂüÁ¶°ªÀ» ¸Þ¼­µå¿¡ Àü´ÞÇϰųª ¸®ÅÏÇØ ÁÖ±âÀ§Çؼ­µµ »ç¿ë

q                µðÀÚÀΟÀÓÀÇ this´Â °´Ã¼°¡ »ý¼ºµÇ´Â ¼ø°£¿¡ °´Ã¼º¯¼ö°¡ °¡Áö´Â °ª

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



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