작성
·
411
0
선생님 안녕하세요!!
마지막 세번째 Knight 생성자에서 두번째 생성자를 먼저 호출시키고 싶어서 this(hp)를 해보았더니 오류가 떴어요. 그래서 세번째 생성자에 int hp를 추가해보니까 오류가 사라지더라구요. 무슨 차이가 있는 건지 궁금합니다!
답변 1
0
this(hp) 이 부분에서 문제가 되는 이유는
hp라는 존재를 모르기 때문입니다.
(hp는 생성자에서 매개변수로 받아준 애가 아닌 상황)
this(hp) 대신 this(100) 같은 숫자로 하면 문제는 사라집니다.
위의 hp는 멤버 변수 hp를 의미하는 것이 아닌가? ~싶을 수도 있지만
기본적으로 이런 문법들은
객체의 내부 변수 값들을 우리가 지정한 값으로 초기화 할 때 사용하는 것이기에
초기화 대상인 멤버 변수들을 벌써부터 꺼내 쓰는 것은 이치에 맞지 않습니다.
추가적으로 질문이 있는데요! 밑부분에 public int hp를 만약 초기화했다면 괜찮을까요? (이게 맞는말인가.....)