인프런 커뮤니티 질문&답변
생성자뒤에 붙는 this에 관해 질문드립니다
작성
·
312
2

생성자 뒤에 this가 붙을 경우
이전 생성자를 불러와 실행한 뒤
본 생성자를 실행하는 것으로 이해했습니다.
제가 이해한 방식대로 생각했을 때
Kni3.mp의 값이 정해지는 순서가
1.this생성자(3번째) : 이전 생성자에서 hp,att,mp값 불러옴
2.this생성자(2번째) : 이전 생성자에서 hp,att,mp값 불러옴
3. this생성자(2번째): hp값 = 미입력, mp값 = 33
4.this생성자(3번째) : hp,att값 = 입력값 , mp값 = 33
Kni3.mp = 33이 나와야 한다고 생각했지만
디버깅해보니
Kni3.mp = 3 이 나와서 헷갈리기 시작했습니다.
생성자 뒤에 this가 붙을 경우
"이전 생성자"를 불러오는게 아닌
"기본 생성자"에서 정해진 값만 불러오고
정해지지 않은 값은 0으로 불러오는 건가요?
답변 1
5
Rookiss
지식공유자
안녕하세요,
우선 스스로 이런 저런 테스트를 하신다니 훌륭한 학습 방법이라고 생각됩니다.
질문주신 부분에 대해 답변 드리자면, 생성자에서 사용하는 this()를 그냥 함수 호출이라고 생각하시면 됩니다.
함수도 오버로딩 된 여러 버전 중에서, 인자 형식/개수가 일치하는 쪽을 선택하는데, 생성자도 별반 다르지 않습니다.
따라서 말씀하신 this()는 무조건 기본 생성자를 호출하고,
위의 예제에서 int 1개짜리 버전을 선택하려면 아래와 같이 this 안에 인자를 넣어주시면 됩니다.





