this는 생성자에서만 사용하는 것이 아닙니다. this 키워드는 다음과 같은 여러 상황에서 사용될 수 있습니다:
1. 인스턴스 변수와 로컬 변수 구분 : 클래스의 인스턴스 변수와 로컬 변수(메서드 내에서 선언한 변수)의 이름이 같을 때, this를 사용하여 인스턴스 변수를 가리킬 수 있습니다. 이렇게 하면 두 변수를 구분할 수 있습니다.
public class Example {
private int value;
public Example(int value) {
this.value = value; // 인스턴스 변수 value에 접근
}
public void printValue(int value) {
System.out.println("인스턴스 변수: " + this.value); // this로 인스턴스 변수에 접근
System.out.println("로컬 변수: " + value);
}
}
this는 생성자에서만 사용하는 것이 아닙니다. this 키워드는 다음과 같은 여러 상황에서 사용될 수 있습니다:
인스턴스 변수와 로컬 변수 구분: 클래스의 인스턴스 변수와 로컬 변수(메서드 내에서 선언한 변수)의 이름이 같을 때, this를 사용하여 인스턴스 변수를 가리킬 수 있습니다. 이렇게 하면 두 변수를 구분할 수 있습니다.
java
Copy code
public class Example {
private int value;
public Example(int value) {
this.value = value; // 인스턴스 변수 value에 접근
}
public void printValue(int value) {
System.out.println("인스턴스 변수: " + this.value); // this로 인스턴스 변수에 접근
System.out.println("로컬 변수: " + value);
}
}
2. 다른 생성자 호출: 생성자에서 다른 생성자를 호출할 때 사용됩니다. 이를 "생성자 오버로딩"이라고 합니다.
public class Example {
private int value;
public Example() {
this(0); // 다른 생성자 호출
}
public Example(int value) {
this.value = value;
}
}
3. 메서드 호출: 현재 객체(인스턴스)에서 다른 메서드를 호출할 때 사용됩니다. 주로 다른 메서드에 현재 객체를 전달할 때 활용됩니다.
public class Example {
private int value;
public void setValue(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
4. 인터페이스의 default 메서드: 인터페이스에서 default로 정의한 메서드 내에서 this를 사용하여 해당 인터페이스를 구현한 클래스의 인스턴스를 참조할 수 있습니다.
interface MyInterface {
default void myMethod() {
System.out.println("This is my method in MyInterface.");
System.out.println(this); // 현재 객체 출력
}
}
this는 주로 현재 객체에 대한 참조를 나타내며, 주로 생성자나 메서드에서 사용되지만, 위의 예시와 같이 다양한 상황에서 활용됩니다.