인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

초보자님의 프로필 이미지
초보자

작성한 질문수

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

문제와 풀이

value라는 필드가 없어도 value값이 출력되네요?

작성

·

120

0

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

[질문 내용]

(자바 기본 - NullPointerException강의 입니다)
제목 그대로 NullMain3.java파일에서 System.out.println("bigData.data.value=" + bigData.data.value);코드를 보면요. value라는 필드가 없는데 0이 출력되는 이유가 궁금합니다!

답변 1

1

안녕하세요. 주형님, 공식 서포터즈 y2gcoder입니다.

질문에 대해서 제가 잘 이해하지 못했을 수도 있습니다!

image.png

먼저 BigData의 내부에 Data data 필드가 존재하고, 해당 Data 타입 내에는 value 필드가 존재합니다 🙂

그리고 NullMain3 에서는 BigData bigData 내부의 Data 를 초기화해주지 않아서 bigData.data.value 를 콘솔에 출력하려고 할 때 NullPointerException 이 발생합니다!

NullMain4 에서 bigData.data.value 에서 value의 값이 0으로 되는 것은 valueint value로 기본형 이고 Data의 멤버 변수이기 때문에 0으로 자동 초기화되기 때문입니다!

 

감사합니다.

초보자님의 프로필 이미지
초보자

작성한 질문수

질문하기