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

30po_bil님의 프로필 이미지
30po_bil

작성한 질문수

김영한의 실전 자바 - 중급 1편

지역 클래스 - 지역 변수 캡처3

사실상 final 변수에 관하여 (값의 변경에 관한 질문입니다)

해결된 질문

작성

·

348

0


=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요. 강의를 보던 중 궁금한 점이 생겼습니다.

사실상 final 변수는 (final 키워드를 넣은 것 처럼) 한 번 값이 설정되면 그 후에 값을 변경하지 못합니다.

=> 질문에 대한 핵심은 다음과 같습니다.

그렇다면 인스턴스를 생성하기 전에 지역 변수의 값을 변경하는 건 괜찮지 않을까? 근데 왜 안될까?

 

=> 그렇게 생각한 이유는 다음과 같습니다.

  1. 지역 변수를 캡쳐하는 시점은 (강의 속 LocalPrinter) 지역 클래스의 인스턴스 생성을 시도 한 후 입니다.

  2. (제 생각에,,) 코드는 위에서 아래로 읽기 때문에 Printer printer = new LocalPrinter(); 가 적혀져 있기 전에는 지역 변수의 값을 변경해도 되지 않을까? 하는 이유입니다.

 

답변 1

5

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 30po_bil님

프로그래밍 언어를 만드는 입장에서 인스턴스를 생성했다는 사실은 런타임에 확인할 수 있는 부분입니다. 그런데 이 부분을 컴파일 시점에 확인하기는 어려울 것 같아요.

언어를 만드는 입장에서 컴파일 시점에 문제들을 찾아야 하기 때문에, 이런 부분을 허용하지 않는 것 같아요.

감사합니다.

30po_bil님의 프로필 이미지
30po_bil

작성한 질문수

질문하기