제로의영역

7.6 this 키워드 본문

C#

7.6 this 키워드

아이큐제로 2019. 5. 27. 17:56

* 본 블로그 글은 머리가 아~~~주 나쁜 왕X100초보가 프로그래밍을 공부하면서 정리를 위해 작성하는 글입니다. 잘못 정리되거나 제가 잘못 이해한 글은 이해 및 조언 부탁드립니다.

* 공부는 '이것이 C#이다' 책을 보고 하고 있습니다. 참고로 어렵게 써져 있어서 별도의 정리 문서를 만들게 되었습니다.

 

7.6.1 나

(1) 정의: 객체(변수 또는 메소드)가 자신을 지칭할 때 사용하는 키워드.

 

(2) 객체(변수 또는 메소드) 내부에서 자신의 필드(클래스 안에 선언된 변수)나 메소드에 접근할 때 사용. 

 class Employee

{
     private string Name;                       // 필드: 클래스 변수 선언

     public void SetName(string Name)           //메소드: 한정자+반환형식+메소드 이름(매개 변수)
     {
         this.Name = Name;                      //메소드의 객체 생성
     }   

}

 'this.Name=Name' 문구의 this.Name는 필드 'private string Name' 의 Name을 지칭.

 'this.Name=Name' 문구의 우측의 Name은 메소드의 매개변수 'string Name'의 Name을 지칭.

 

 결론: 클래스의 변수를 메소드에 입력된 변수로 선언.

 

예제)

using System;

namespace ex7_6
{
   class Employee
   {
      private string Name;            	 	 		//변수1
      private string Position;         		 		//변수2

      public void SetName(string Name) 		 		//메소드
      {
         this.Name = Name; 				     	//SetName()의 변수를 Employee의 변수로 선언 
      }

     public string GetName()				 	//메소드
     {
        return Name; 						 	//Name변수를 호출자에게 반환
     }

     public void SetPosition(string Position) 		// 메소드
     {
         this.Position = Position; 			  		//SetPosition()의 변수를 Employee의 변수로 선언
     }

     public string GetPosition()			  		// 메소드
     {
        return this.Position; 				  		// Position변수를 호출자에게 반환
     }
   }

   class Program
   {
      static void Main(string[] args)
      {
         Employee pooh = new Employee();			// pooh객체 생성:pooh는 Employee()를 가리킴
         pooh.SetName("Pooh");						// SetName 메소드 호출
         pooh.SetPosition("Waiter");				// SetPosition 메소드 호출
         Console.WriteLine
         ($"{pooh.GetName()} {pooh.GetPosition()}");

         Employee tigger = new Employee();			// tigger객체 생성:tigger는 Employee()를 가리킴
         tigger.SetName("Tigger");					// SetName 메소드 호출
         tigger.SetPosition("Cleaner");				// SetPosition 메소드 호출
         Console.WriteLine
         ($"{tigger.GetName()} {tigger.GetPosition()}");
      }
   }
}

출력 결과:

 

Pooh Waiter

Tigger Cleaner