this는 생성자에서만 사용해? 다른 곳에서 사용하는 경우가 있을까?

KIM YONG GU·2023년 9월 6일
0

JAVA Knowledge

목록 보기
15/40
post-custom-banner

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는 주로 현재 객체에 대한 참조를 나타내며, 주로 생성자나 메서드에서 사용되지만, 위의 예시와 같이 다양한 상황에서 활용됩니다.

profile
Engineer, Look Beyond the Code.
post-custom-banner

0개의 댓글