Java에서의 this

Jemin·2023년 9월 25일
0

백엔드

목록 보기
10/21
post-thumbnail

this

this는 자바 프로그래밍 언어에서 특정 객체를 가리키는 참조 변수다. this 키워드를 사용하여 현재 객체의 인스턴스를 참조할 수 있다.

this와 this()

  • this: this는 객체 자신을 가리키는 레퍼런스 변수로, 자신의 객체에 접근할 때 사용된다.
    • 주로 멤버변수와 매개변수의 이름이 동일할 때, 이를 구분하기 위해 사용된다.
  • this(): this()는 같은 클래스에서 생성자가 다른 생성자를 호출할 때 사용된다.
    • 주로 코드의 중복을 줄일 목적으로 사용된다.
    • 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;
        }
    }
}

참조
자바 - this와 this( )의 용도 및 사용예제

profile
경험은 일어난 무엇이 아니라, 그 일어난 일로 무엇을 하느냐이다.

0개의 댓글