답변 1
0
안녕하세요. ghuhan18님, 공식 서포터즈 y2gcoder입니다.
this(age, name, grade);
가 가리키는 생성자가 아래의 파라미터가 2개인 생성자가 아닙니다!
보시면 this()의 파라미터가 3개인 것을 보실 수 있습니다. 즉 해당 파라미터 3개를 가지는 생성자를 뜻합니다.
근데 작성해주신 코드를 보면 생성자가 없고 전부 void 메서드입니다! 그래서 해당 에러에 커서를 올려 확인해보시면 생성자가 없다는 에러를 볼 수 있습니다!
해당 챕터를 다시 복습해보시고 생성자 만드는 방법을 숙지해주십쇼!
또한 정상적인 생성자 시그니처로 바꿔줘도 문제는 해결되지 않습니다.
보시면 this()가 가리키는 대상이 바로 자기자신이기 때문입니다. 그래서 자기자신을 재귀적으로 계속 호출하게 되기 때문에 이렇게 사용하면 안된다고 하는 것입니다. 제 생각에는 반대로 사용하는 것 같으나 굳이 사용한다고 하면
이와 같이 사용해주시는 게 맞습니다.
그리고 저는 오버로딩을 이용한다면
이렇게 사용할 것 같습니다!
이해가 가지 않으신다면 지금 강의를 복습해주십쇼!
감사합니다.