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

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

귤이당님의 프로필 이미지
귤이당

작성한 질문수

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

생성자

생성자 this

작성

·

411

0

선생님 안녕하세요!!

마지막 세번째 Knight 생성자에서 두번째 생성자를 먼저 호출시키고 싶어서 this(hp)를 해보았더니 오류가 떴어요. 그래서 세번째 생성자에 int hp를 추가해보니까 오류가 사라지더라구요. 무슨 차이가 있는 건지 궁금합니다!

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자


this(hp) 이 부분에서 문제가 되는 이유는
hp라는 존재를 모르기 때문입니다.
(hp는  생성자에서 매개변수로 받아준 애가 아닌 상황)
this(hp) 대신 this(100) 같은 숫자로 하면 문제는 사라집니다.


위의 hp는 멤버 변수 hp를 의미하는 것이 아닌가? ~싶을 수도 있지만 
기본적으로 이런 문법들은
객체의 내부 변수 값들을 우리가 지정한 값으로 초기화 할 때 사용하는 것이기에
초기화 대상인 멤버 변수들을 벌써부터 꺼내  쓰는 것은 이치에 맞지 않습니다.

추가적으로 질문이 있는데요! 밑부분에 public int hp를 만약 초기화했다면 괜찮을까요? (이게 맞는말인가.....)

Rookiss님의 프로필 이미지
Rookiss
지식공유자

: ~~ 다음에 등장하는 부분이 바로 초기화 코드이기 때문에,
그보다 더 전에 public int hp를 초기화 할 수가 없기에 여전히 모순이 존재합니다.

감사합니당

귤이당님의 프로필 이미지
귤이당

작성한 질문수

질문하기