this는 자바에서 현재 객체를 참조하는 키워드이다.
클래스 내에서 this는 해당 클래스의 인스턴스를 가리키며, 주로 다음과 같은 용도로 사용된다:
1. 인스턴스 변수와 메서드 참조
- this는 현재 객체의 인스턴스 변수와 메서드를 참조하는 데 사용된다.
- 예를 들어, 클래스의 생성자나 메서드에서 인스턴스 변수와 파라미터 이름이 같을 경우, this를 사용하여 인스턴스 변수를 명확히 구분할 수 있다.
public class Person {
private String name;
public Person(String name) {
this.name = name; // 'this.name'은 인스턴스 변수, 'name'은 파라미터
}
}
2. 현재 객체를 다른 메서드나 생성자에 전달
- this는 현재 객체를 다른 메서드나 생성자에 전달할 때 사용된다.
- 이는 객체의 메서드를 호출하거나 다른 생성자를 호출할 때 유용하다.
public class MyClass {
private String value;
public MyClass(String value) {
this.value = value;
}
public void printValue() {
System.out.println(this.value);
}
}
3. 메서드 체이닝 (Method Chaining)
- 메서드 체이닝을 할 때 this를 사용하여 현재 객체를 반환하는 방식으로, 연속적인 메서드 호출을 가능하게 만든다.
public class Person {
private String name;
public Person setName(String name) {
this.name = name;
return this; // 현재 객체 반환
}
public Person greet() {
System.out.println("Hello, " + name);
return this; // 메서드 체이닝
}
}
4. 정적 메서드에서의 사용
- this는 정적 메서드에서 사용할 수 없다. 정적 메서드는 클래스의 인스턴스와 관련이 없으므로 this를 참조할 수 없다.
5. 내부 클래스에서 사용
- 내부 클래스에서 this를 사용하면 내부 클래스의 객체를 참조하게 된다. 외부 클래스의 객체를 참조하려면 OuterClass.this를 사용해야 한다.
public class OuterClass {
private String name = "Outer";
public class InnerClass {
private String name = "Inner";
public void printNames() {
System.out.println(name); // Inner 클래스의 name
System.out.println(OuterClass.this.name); // Outer 클래스의 name
}
}
}
'java > 그 외 알게된 것들' 카테고리의 다른 글
| GET과 POST의 차이 (0) | 2025.01.08 |
|---|---|
| Public / Static / default (0) | 2024.05.03 |
| 20240412 중간 정리 (0) | 2024.04.12 |
| 메서드 Method (0) | 2024.04.10 |
| 단축어 (0) | 2024.04.10 |