[JAVA] 10.this

안녕하세요 IT뽀로로입니다.

 

오늘은 this에 대해서 알아볼게요

 

 

#this란?

 

this는 자바의 중요한 키워드로서 단어가 의미하는 데로 객체 자신을 가리킨다.

 

자바에서 this는 현재 실행되는 메서드가 속한 객체에 대한 레퍼런스이다. 

 

this는 컴파일러에 의해 자동으로 생성되며 개발자는 별도로 this를 선언할 필요 없이 사용하기만 하면 된다.

 

EX) this를 사용하는 예

 

class Samp{
	int id;
	public Samp(int x) {this.id = x;}
	public void set(int x) {this.id = x;}
	public int get() {return id;}
}

이 소스에서 this는 현재 객체에 대한 레퍼런스이므로, this로 Samp 클래스의 필드를 접근할 수 있다

 

즉 this.id == Samp 클래스의 id이다.

 

 

 

#this는 언제 사용하는가?

 

void set(int id) {id=id;}

이런 소스가 있다고 가정해보자. 우리는 Samp클래스의 필드 중 하나인 id를 수정해야 하는데

 

위 함수에서 매개변수로 받은 id는 결국 필드의 id를 변경하지 못한다.

 

이럴 때 다음과 같이 this를 사용한다.

 

void set(int id) { this.id = id;}

이렇게 되면 Samp클래스의 필드인 id가 값이 변경이 된다. 

 

이럴때 사용하는 거다!

 

 

 

#this를 사용할 때 중요한 것

 

this를 사용하기 위해서는 해당 클래스의 객체가 생성되어야 한다.

 

가장 중요하다. this는 클래스의 객체가 생성될 때 생성되기 때문이다.

 

References. 명품 Java Progamming

'IT Study > JAVA' 카테고리의 다른 글

[JAVA] 12.접근 지정자  (0) 2019.09.04
[JAVA] 11.생성자  (0) 2019.09.02
[JAVA] 9.메소드 오버로딩(Method Overloading)  (0) 2019.09.02
[JAVA] 8.인자전달 (Call-by-value)  (0) 2019.09.02
[JAVA] 7.클래스와 객체  (0) 2019.08.31