this는 자바 프로그래밍 언어에서 특정 객체를 가리키는 참조 변수다. this 키워드를 사용하여 현재 객체의 인스턴스를 참조할 수 있다.
클래스 내부에서 인스턴스 변수와 지역 변수의 이름이 충돌하는 경우, this를 사용하여 인스턴스 변수를 명시적으로 지정할 수 있다.
public class MyClass {
private int value; // 인스턴스 변수
public void setValue(int value) {
this.value = value; // this를 사용하여 인스턴스 변수를 지정
}
}
생성자 내부에서 다른 생성자를 호출할 때 사용된다. 이것은 생성자 중복 정의(Constructor Overloading) 시에 유용하게 사용된다.
public class MyClass {
private int value;
public MyClass() {
this(0); // 다른 생성자 호출
}
public MyClass(int value) {
this.value = value;
}
}
현재 객체를 메서드에 전달하거나, 현재 객체의 메서드를 호출할 떄 사용한다.
이것은 객체 지향 프로그래밍에서 중요한 개념 중 하나인 자기 자신의 메서드를 호출할 때 유용하게 사용된다.
public class MyClass {
public void doSomething() {
// 다른 메서드 호출 시 this를 생략해도 됩니다.
anotherMethod();
this.anotherMethod(); // this를 사용하여 호출
}
public void anotherMethod() {
// 메서드 내용
}
}
내부 클래스(Inner Class)에서 외부 클래스(Outer Class)의 멤버에 접근할 때 사용된다.
public class Outer {
private int outerValue;
public class Inner {
public void doSomething() {
// 외부 클래스의 멤버에 접근하기 위해 this를 사용
int value = Outer.this.outerValue;
}
}
}