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

ghuhan18님의 프로필 이미지
ghuhan18

작성한 질문수

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

생성자 - 오버로딩과 this()

this

작성

·

241

0

빨간색 밑줄친건 안되는 이유가 어떠한 grade 값을 받더라도 99 가 되어버리는 오류 때문에 이 경우는 성립이 안되는건가요 ?

답변 1

0

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

this(age, name, grade);

가 가리키는 생성자가 아래의 파라미터가 2개인 생성자가 아닙니다!

보시면 this()의 파라미터가 3개인 것을 보실 수 있습니다. 즉 해당 파라미터 3개를 가지는 생성자를 뜻합니다.

근데 작성해주신 코드를 보면 생성자가 없고 전부 void 메서드입니다! 그래서 해당 에러에 커서를 올려 확인해보시면 생성자가 없다는 에러를 볼 수 있습니다!

image

해당 챕터를 다시 복습해보시고 생성자 만드는 방법을 숙지해주십쇼!

또한 정상적인 생성자 시그니처로 바꿔줘도 문제는 해결되지 않습니다.

image

보시면 this()가 가리키는 대상이 바로 자기자신이기 때문입니다. 그래서 자기자신을 재귀적으로 계속 호출하게 되기 때문에 이렇게 사용하면 안된다고 하는 것입니다. 제 생각에는 반대로 사용하는 것 같으나 굳이 사용한다고 하면

image이와 같이 사용해주시는 게 맞습니다.

그리고 저는 오버로딩을 이용한다면

image이렇게 사용할 것 같습니다!

이해가 가지 않으신다면 지금 강의를 복습해주십쇼!

 

 

감사합니다.

ghuhan18님의 프로필 이미지
ghuhan18

작성한 질문수

질문하기