해결된 질문
작성
·
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 은 힙영역에 생성되는 인스턴스가 아니기에 사용할 수 없습니다 :)
감사합니다.