본문 바로가기
카테고리 없음

자바 this의 의미와 사용법

by sftt 2023. 12. 24.

자바의 "this"의 의미와 사용법

자바에서 "this"는 현재 인스턴스를 참조하는 키워드입니다. "this"를 사용하여 현재 객체의 멤버 변수 및 메서드에 접근할 수 있습니다. 이 글에서는 "this"의 의미와 사용법에 대해 다루도록 하겠습니다.

1. "this"의 의미

"this"는 객체 내에서 자신을 가리키는 참조 변수입니다. 클래스의 인스턴스가 생성될 때마다, 그 인스턴스의 메모리 공간에는 멤버 변수들이 저장됩니다. "this"는 현재 인스턴스를 가리키므로, 해당 인스턴스의 멤버 변수에 접근할 수 있습니다. "this"를 사용하여 인스턴스 변수와 메서드를 구분할 수 있으며, 인스턴스 변수와 지역 변수의 이름이 충돌할 때 사용하여 혼란을 방지할 수 있습니다.

2. "this"의 사용법

아래는 몇 가지 "this"의 사용 예시입니다.

2.1. 현재 인스턴스의 멤버 변수 접근

public class MyClass {
    private int number;

    public void setNumber(int number) {
        this.number = number; // "this"를 사용하여 현재 인스턴스의 멤버 변수에 접근
    }
}

위의 코드에서 "this.number"는 현재 인스턴스의 "number" 멤버 변수에 접근하는 것을 나타냅니다. "this"를 사용함으로써 현재 인스턴스에 저장되는 값을 알 수 있습니다.

2.2. 현재 인스턴스의 메서드 호출

public class MyClass {
    public void doSomething() {
        System.out.println("Doing something...");
    }

    public void invokeMethod() {
        this.doSomething(); // "this"를 사용하여 현재 인스턴스의 메서드 호출
    }
}

위의 코드에서 "this.doSomething()"은 현재 인스턴스의 "doSomething()" 메서드를 호출하는 것을 나타냅니다. "this"를 사용함으로써 현재 인스턴스의 메서드를 호출할 수 있습니다.

3. "this"의 주의사항

3.1. 정적 메서드에서의 "this" 사용

정적(static) 메서드 내에서는 "this"를 사용할 수 없습니다. 정적 메서드는 인스턴스에 속하지 않으므로, "this"를 사용하여 현재 인스턴스를 참조할 수 없습니다.

3.2. 생성자에서의 "this" 사용

생성자 내에서도 "this"를 사용할 수 있습니다. "this"를 사용하여 다른 생성자를 호출할 수 있습니다. 이는 생성자 간의 코드 중복을 줄이고, 특정한 조건에 따라 다른 생성자를 호출할 수 있도록 도와줍니다.

public class MyClass {
    private int number;

    public MyClass() {
        this(0); // "this"를 사용하여 다른 생성자 호출
    }

    public MyClass(int number) {
        this.number = number;
    }
}

위의 코드에서 "this(0)"은 인자로 0을 받는 다른 생성자를 호출하는 것을 나타냅니다. 이를 통해 기본 생성자에서 특정 값으로 초기화된 객체를 생성할 수 있습니다.

4. 마무리

이 글에서는 자바의 "this" 키워드의 의미와 사용법에 대해 알아보았습니다. "this"를 사용하여 현재 인스턴스의 멤버 변수와 메서드에 접근할 수 있으며, 생성자에서 다른 생성자를 호출하는 것도 가능합니다. "this"의 사용은 코드의 가독성을 높이고, 혼돈을 방지하는 데 도움을 줍니다.

댓글