05. this, this() ์ƒ์„ฑ์ž

2022. 4. 6. 09:15ยท๐Ÿ’ป Programming Language/C#

this ํ‚ค์›Œ๋“œ

namespace ThisEx
{

    class Student
    {
        private string name;
        private string grade;

        public void SetName(String name)
        {
            this.name = name;
            //name = name ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜ name์ธ์ง€ ํด๋ž˜์Šค๋‚ด name์ธ์ง€ ํŒ๋ณ„ํ•  ์ˆ˜ ์—†๋‹ค.
            // this.name ์€ student ํด๋ž˜์Šค ๋‚ด ์„ ์–ธ๋œ name
        }

        public string GetName()
        {
            return name;
            // ์ด ๊ฒฝ์šฐ student ๋‚ด์˜ name์ž„์€ ์ž๋ช…ํ•˜๋‹ค.
        }

        public void SetGrade(string grade)
        {
            this.grade = grade; 
        }

        public string GetGrade()
        {
            return grade;   
        }


    }
    class Program
    {
        static void Main(string[] args)
        {
            //this : ๊ฐ์ฒด๊ฐ€ ์ž์‹ ์„ ์ง€์นญํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค.

            Student kim = new Student();
            kim.SetName("๊น€๊ธธ๋™");
            kim.SetGrade("Senior");

            Console.WriteLine(kim.GetName()); 
            Console.WriteLine(kim.GetGrade());
            Console.WriteLine($"{kim.GetName()} {kim.GetGrade()}");
        }
    }
}
  • this : ๊ฐ์ฒด๊ฐ€ ์ž๊ธฐ ์ž์‹ ์„ ์ง€์นญํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ
  • setํ•จ์ˆ˜์™€ ๊ฐ™์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํ•„๋“œ์˜ ์ด๋ฆ„๊ณผ ๊ฐ™์€ ๋ณ€์ˆ˜๋กœ ๊ฐ’์„ ๋ฐ›๊ฒŒ ๋˜๋ฉด ๊ฐ์ฒด๋‚ด์—์„œ ์–ด๋–ค ๋งค๊ฐœ๋ณ€์ˆ˜์ธ์ง€ ๊ตฌ๋ถ„ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด this๋ฅผ ์‚ฌ์šฉ
  • setName() ์—์„œ name = name ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜ name์ธ์ง€ ํด๋ž˜์Šค ๋‚ด name์ธ์ง€ ํŒ๋ณ„ํ•  ์ˆ˜ ์—†๋‹ค.
  • this.name ์„ ์‚ฌ์šฉํ•˜์—ฌ student ํด๋ž˜์Šค ๋‚ด ์„ ์–ธ๋œ name์ž„์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•ด์ฃผ์–ด์•ผ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.
    #### this() ์ƒ์„ฑ์ž
namespace ThisEx2
{
    class Demo
    {
        public int a, b, c;

        public Demo()
        {
            this.a = 100;
        }

        public Demo(int b) : this() // ์ž์‹ ์˜ ์•ž์ชฝ์— ์žˆ๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ง€์นญํ•˜๋Š” this() ์ƒ์„ฑ์ž
        {                           // ์ด ๊ฒฝ์šฐ ์•ž์ชฝ์˜ Demo()๋ฅผ ๊ฐ€๋ฆฌํ‚ด 
            //this.a = 100;
            this.b = b;
        }

        public Demo(int b, int c) : this(b) // ์ด ๊ฒฝ์šฐ ์•ž์ชฝ์˜ Demo(int b) ๋ฅผ ๊ฐ€๋ฆฌํ‚ด
        {                                   // ์ธ์ž๋กœ ๋“ค์–ด์˜จ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋„ฃ์–ด์คŒ.
                                            // ๋งจ ์•ž์˜ Demo()๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์‹ถ๋‹ค๋ฉด this()๋ฅผ ์จ์ค˜์•ผํ•จ.
            //this.a = 100;
            //this.b = b;
            this.c = c;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            // this() ์ƒ์„ฑ์ž
            Demo demo = new Demo(200, 300);

            Console.WriteLine(demo.a);
            Console.WriteLine(demo.b);
            Console.WriteLine(demo.c);
        }
    }
}
Output

100
200
300
  • this() ์ƒ์„ฑ์ž๋Š” ์ž์‹ ๋ณด๋‹ค ์•ž์ชฝ์— ์žˆ๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ง€์นญํ•  ๋•Œ ์‚ฌ์šฉํ•จ
  • ๋งŒ์ผ Overloading๋œ ์ƒ์„ฑ์ž๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ this() ์ƒ์„ฑ์ž ๋‚ด์— ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด ์คŒ์œผ๋กœ์จ ์ƒ์†๋ฐ›๋Š” ์ƒ์„ฑ์ž๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Œ (๋‹จ, ์ด ๊ฒฝ์šฐ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„์€ ์•ž์ชฝ ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ๋”ฐ๋ผ์•ผํ•จ.)

'๐Ÿ’ป Programming Language > C#' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

07. ์ƒ์†  (0) 2022.04.06
06. ์ ‘๊ทผ์ œํ•œ์ž(Access Modifier)  (0) 2022.04.06
04. ๊นŠ์€ ๋ณต์‚ฌ์˜ ์ดํ•ด (Deep Copy)  (0) 2022.04.06
03. static ํ•„๋“œ์™€ static ๋ฉ”์†Œ๋“œ  (0) 2022.04.06
02. ์ƒ์„ฑ์ž์™€ ์ข…๋ฃŒ์ž  (0) 2022.04.06
'๐Ÿ’ป Programming Language/C#' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • 07. ์ƒ์†
  • 06. ์ ‘๊ทผ์ œํ•œ์ž(Access Modifier)
  • 04. ๊นŠ์€ ๋ณต์‚ฌ์˜ ์ดํ•ด (Deep Copy)
  • 03. static ํ•„๋“œ์™€ static ๋ฉ”์†Œ๋“œ
S.Honey
S.Honey
  • S.Honey
    Algo ์“ฐ์ž
    S.Honey
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (123)
      • ํšŒ๊ณ  (0)
        • ์ทจ์—… ํ›„ ํšŒ๊ณ  (0)
      • ๐Ÿƒ Frontend Road-Map (2)
        • ๐Ÿšฉ Summary (1)
        • ๐Ÿ“š Road-Map Contents (1)
        • ๐ŸŸง HTML (0)
        • ๐ŸŸฆ CSS (0)
        • ๐ŸŸจ Javascript (0)
        • โฌœ React (0)
        • ๐ŸŸช Redux (0)
      • Backend (0)
        • QueryDSL (0)
      • ๐Ÿ’ป Programming Language (54)
        • C# (51)
        • Flutter-Dart (3)
        • Java (0)
      • ๐Ÿ“š Computer Science (4)
        • Algorithms (4)
        • Database (0)
        • Network (0)
        • Operating System(OS) (0)
      • ๐Ÿ’ฏ CodingTest (60)
        • BaekJoon (22)
        • Programmers (34)
        • CodeTree (4)
      • โœ’๏ธ Design Pattern (1)
      • ๐Ÿฑ Etc (2)
        • Jenkins Plugin ์ œ์ž‘๊ธฐ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๋งํฌ

    • ๊ณต์ง€์‚ฌํ•ญ

      • ๐Ÿ“– ๊ณต๋ถ€ ์ฐธ๊ณ  ๊ต์žฌ ๋ฐ ์ž๋ฃŒ
    • ์ธ๊ธฐ ๊ธ€

    • ํƒœ๊ทธ

      ์นด์นด์˜ค
      sort
      ์‚ผ์„ฑsw์—ญํ…Œ
      ์ด์ง„ํƒ์ƒ‰
      ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      ๊ตฌํ˜„
      ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
      ์‹œ๋ฎฌ๋ ˆ์ด์…˜
      ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
      DP
      ํŒŒ์ด์ฌ
      ์Šคํ„ฐ๋””
      Java
      ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰
      Algorithm
      ์ž๋ฃŒ๊ตฌ์กฐ
      ๋ฐฑ์ค€
      ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
      ์“ฐ์…จ์ž–์•„
      programmers
      ์•Œ๊ณ ๋ฆฌ์ฆ˜
      c#
      Flutter
      JS
      BFS
      DART
      JavaScript
      ๋ฌธ์ž์—ด ํŒŒ์‹ฑ
      ์ฝ”๋“œํŠธ๋ฆฌ
      BAEKJOON
    • ์ตœ๊ทผ ๋Œ“๊ธ€

    • ์ตœ๊ทผ ๊ธ€

    • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
    S.Honey
    05. this, this() ์ƒ์„ฑ์ž
    ์ƒ๋‹จ์œผ๋กœ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”