강의

멘토링

커뮤니티

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

깃버님의 프로필 이미지
깃버

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

생성자

생성자뒤에 붙는 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님의 프로필 이미지
Rookiss
지식공유자

안녕하세요,

우선 스스로 이런 저런 테스트를 하신다니 훌륭한 학습 방법이라고 생각됩니다.

질문주신 부분에 대해 답변 드리자면, 생성자에서 사용하는 this()를 그냥 함수 호출이라고 생각하시면 됩니다.

함수도 오버로딩 된 여러 버전 중에서, 인자 형식/개수가 일치하는 쪽을 선택하는데, 생성자도 별반 다르지 않습니다.

따라서 말씀하신 this()는 무조건 기본 생성자를 호출하고,

위의 예제에서 int 1개짜리 버전을 선택하려면 아래와 같이 this 안에 인자를 넣어주시면 됩니다.

깃버님의 프로필 이미지
깃버

작성한 질문수

질문하기