본문 바로가기

java/그 외 알게된 것들

This

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