[Java] 자바 this의 의미와 사용법

People클래스에 Age필드와 setAge( ) 메소드가 다음과 같이 선언되어 있다고 가정해보겠습니다.

public class People{

  //필드
  int age;

  //메소드
  void setAge(int a){
    age = a;
  }
}

위와같이 age에 외부의 값을 입력받을 수 있는 setAge( )라는 Setter함수를 선언하였습니다. 위에서는 메서드의 인자 변수이름을 int a라 하였는데 여기서 인자값의 변수를 필드의 이름과 같이 하려면 어떻게 해야할까요?

 

this를 사용하면, 메서드의 인수나 변수에 필드와 같은 이름을 붙여도 그것들을 구분하여 사용할 수 있습니다. this는 주로 생성자와 메소드의 매개변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드임을 명시하고자 할때 사용됩니다.

public class People{

  //필드
  int age;

  //메소드
  void setAge(int age){
    this.age = age;
  }
}

위와 같이 인자값의 변수명과 필드의 변수명이 같아도 this를 활용하면 같이 사용이 가능합니다. 위의 코드를 예로 들자면 this.age는 필드인 age를 의미합니다. 즉, this의 뒤의 변수명은 인수가 아닌 멤버변수(필드)를 의미하는 것이 됩니다.

댓글

Designed by JB FACTORY