this

황희윤·2023년 11월 7일

this

객체 자신을 참조하는 주솟값을 다루는 참조 변수의 일종

  • 기본 생성자처럼 자바 컴파일러가 제공하기 때문에 별도의 선언 없이 사용한다.

특징

  • this는 메서드 내에서만 사용 가능하다.

  • 객체 자신에 대해 참조하는 값을 갖는다. 즉, 자기 자신을 가리킨다.

  • 객체 자신을 메서드에 전달하거나 반환하기 위해 사용한다.

  • this를 사용하여 모호하지 않고 좀 더 명확한 프로그램을 작성할 수 있다.

class person{
	int age = 0;
    
    void changeAge(int age){
    	age = age;
    }
}

위의 코드대로 person.changeAge(20)하면 person.age의 값은 여전히 0이다.

왜냐하면 컴파일러는 person의 인스턴스 변수(멤버 변수)인 age와 매개 변수(parameter) age 중 스택(stack) 내의 데이터 중 가장 가까운 변수매개 변수에 먼저 접근해서 값을 읽는다.
그리고 나서 인스턴스 변수 age = 0을 읽고 나서 대입을 한다.
따라서 인스턴스 변수에는 아무런 변화가 일어나지 않아서 age는 0이다.

해결 방법으로는 매개 변수와 인스턴스 변수 서로 다른 이름을 사용하거나 this를 사용한다.

class person{
	int age = 0;
    
    void changeAge(int age){
    	this.age = age;
    }
}
profile
HeeYun's programming study

0개의 댓글