[JAVA/자바] This란?

2019. 10. 22. 20:19JAVA

 

맴버변수와 매개변수의 구분

▶ 매서드(함수) 혹은 생성자에서 쓰는 파라미터(매개변수)가 클래스의 맴버 변수명과 동일할 때 둘을 구분하기 위해 사용 되어진다.

 

예를 들어

 

practice 클래스

 

이러한 클래스가 있다고 가정할 때,

PracticeThis라는 생성자 아래 있는

move_name=move_name;

move_hour=move_hour;

move_minute=move_minute;

코드에서 앞에 변수는 클래스의 맴버변수이고 뒤에 있는 변수는 생성자의 파라미터(매개변수)라는 의미로 코드를 구현했지만 컴파일러는 앞에 있는 move_name도 뒤에 있는 move_name도 전부 파라미터(매개변수)로 인식한다.

즉, 생성자는 매개변수에 매개변수를 넣은 행동을 한 것이다.

이러한 상황에서 Main에서 클래스의 속성을 결정해주는 생성자를 호출하게 된다면,

클래스의 속성은 지정된 적이 없기 때문에 아무것도 들어가지 않은 값이 뜨게 된다.

 

위에 코드를 실행한결과

 

그래서 this를 통해 앞에 있는 변수와 뒤에 있는 변수를 구분해주게 된다.

this→'해당 객체의' 라는 의미로 해석된다.this가 붙으면 해당 변수는 자신이 속한 객체의 변수, 즉 맴버변수라는 것을 컴파일러에게 알려주게 된다.

 

practice 클래스에 this 삽입
Main
출력

 

생성자 뿐만 아니라 매서드(함수)를 만들 때 파라미터(매개변수)를 맴버변수와 동일한 이름으로 할 경우에도 this를 붙여 구분해줘야한다.

 

PracticeThis2 클래스 코드

 

Main
출력