Cộng đồng Hỏi & Đáp của Inflearn
Clone을 통해서 새로운 객체를 만들어낼때
Viết
·
356
4
Knight knight2 = knight.Clone();
을 통해서 새로운객체를 만들어내는것은 이해했습니다.
다만 제가 knight2.hp =0을 안하고 디버깅을 했더니
knight2의 hp, attack 값이 기존 만들어두었던 knight의 값으로 자동으로 설정되더군요 (hp=100, attack=10)
Clone 함수에서 knight.hp=hp, knight.attack=attack 이라고 지정하면 Knight클래스 내부의 변수 값을 가져오는걸로 이해했는데
public int hp, public int attack 이라고 선언만했지 초기값을 지정해주지 않았습니다.
초기값을 지정해주지 않았는데도 자동으로 값이 채워지는 이유는 무엇인가요?
Câu trả lời 2
0
0
Clone 함수에서 knight.hp=hp, knight.attack=attack 이라고 지정하면
Knight클래스 내부의 변수 값을 가져오는걸로 이해했는데
-> knight 클래스 내부의 변수 값이라 함은 모호하고
우리가 작업하고 있는 '그' Knight 객체의 값을 꺼내오는 것입니다.
강의 64번 Line에서 만든 '그' Knight 객체가 되는데
knight.hp = 100, knight.attack = 10을 세팅해놓은 상태이니,
그 knight의 정보를 이용해 복사가 되는 것입니다.
즉 위의 knight.hp=hp, knight.attack=attack
에서 hp는 65번 Line에서 채워넣은 hp에,
attack은 66번 Line에서 채워넣은 attack에 해당합니다.





