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

Wind Thomas님의 프로필 이미지

작성한 질문수

Java TPC (생각하고, 표현하고, 코딩하고)

잘 설계된 클래스(Model : DTO, DAO, Utility)

this 할당 질문드립니다.

작성

·

241

1

this가 객체로 따로 할당된다고 하셨는데, 이게 좀 이해가 되질 않습니다.

저는 메소드 영역에서 this가 보이면 인스턴스의 주소를 가리킨다고 인지하고 있었는데요, this가 객체로 할당된다는 것이 이해가 되지 않습니다.

답변 3

1

박매일님의 프로필 이미지
박매일
지식공유자

객체가 메모리에 생성이 되면 자기자신을 가리키는 내장변수로 this가 만들어 집니다.

(메모리는 번지로 되어있어서 객체가 메모리에 생성되면 메모리번지를 가리키는 변수가 있어야 접근이 가능하겠죠)

this에는 자신의(객체) 번지가 저장되므로 this. 으로 컴파일 시점에서 자신의 멤버들을 접근할수있습니다.

1

Wind Thomas님의 프로필 이미지
Wind Thomas
질문자

컴파일러?? JVM(둘중 하나같은데 잘 모르겠어요)이 해당 메소드를 사용하는 변수의 타입으로 주소를 this에 저장시켜준다고 이해하면 되는건가요???

1

박매일님의 프로필 이미지
박매일
지식공유자

저는 메소드 영역에서 this가 보이면 인스턴스의 주소를 가리킨다고 인지하고 있었는데요.
네 맞습니다. 객체가 메모리에 생성이되면(인스턴스가 만들어지면) this에 생성된 객체의 번지가 저장되게 됩니다.
this가 번지를 저장할려면 this도 변수처럼 기억공간을 할당받아야되겠죠 그럼의미에서 this가 객체로 따로 할당된다 라고 설명을 했습니다. 이해가 되셨는지요.