인프런 커뮤니티 질문&답변

감바스님의 프로필 이미지
감바스

작성한 질문수

김영한의 실전 자바 - 기본편

static 메서드2

static 메서드와 this 관련해서 질문이 있습니다.

해결된 질문

작성

·

203

0

public class DecoData {
    private int instanceValue;
    private static int staticValue;

    public static void staticCall() {
       System.out.println(this.instanceValue);
    }

    ....
}

안녕하세요! 강의에서 "static 영역 입장에서 힙 영역에 있는 인스턴스의 참조값을 몰라서 인스턴스 변수에 접근할 수 없다." 라고 얘기를 해주셨는데 그러면 this는 클래스 본인의 인스턴스 참조값이니 이 this를 이용하면 static 메서드에서도 인스턴스 변수에 접근할 수 있지 않을까? 라는 생각을 해서 코드를 짰는데 오류가 났습니다. 왜 static 메서드 영역에서 this를 사용해도 인스턴스 변수에 접근할 수 없나요?

감사합니다.

답변 1

0

안녕하세요. annjae4676님, 공식 서포터즈 코즈위버입니다.

this 라는 것 자체가 '인스턴스'를 전제로 사용하는 문법이라 그렇습니다.

인스턴스일 경우 this는 자기자신의 참조를 의미합니다. 그러나 static 은 힙영역에 생성되는 인스턴스가 아니기에 사용할 수 없습니다 :)

감사합니다.

감바스님의 프로필 이미지
감바스

작성한 질문수

질문하기