• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

24.03.27 16:41 작성 조회수 88

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

codesweaver님의 프로필

codesweaver

2024.03.27

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

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

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

감사합니다.