• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

생성자 this

21.05.24 00:49 작성 조회수 335

0

선생님 안녕하세요!!

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

답변 1

답변을 작성해보세요.

0


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


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

복이bok님의 프로필

복이bok

2021.05.26

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

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

복이bok님의 프로필

복이bok

2021.05.26

감사합니당