안녕하세요.


블루슬라임 클래스는 다 만들었으니 이번엔 레드슬라임 클래스를 만들어보겠습니다.


블루슬라임 클래스 밑에다가 아래처럼 코딩해주세요.




레드슬라임은 다른 슬라임보다 공격력이 강하도록 설정했습니다.


이제 메인 클래스를 수정해줘야겠죠.




우선 클래스명과 변수명을 변경해줬습니다.


한가지 꿀팁을 알려드리자면 변수명에다가 커서를 두고 알트 + 시프트 + r을 누르면 동일한 변수의 이름을 한꺼번에 바꾸는게 가능합니다^^




레드슬라임이니까 슬라임 그림도 빨간색으로 바꿔줍니다^^




이번 강좌에서 핵심이 되는 부분입니다.


우선 110행을 보면 배틀함수의 인수가 BlueSlime이 아니라 Slime입니다. 왜냐하면 블루슬라임으로 하게되면 레드슬라임은 배틀함수의 적용을 받지 못하거든요. (빨간밑줄 생깁니다) 그래서 두종류의 슬라임의 부모인 슬라임으로 변경시킨거죠.


이번엔 빨간네모안의 if문을 보시죠. 배틀함수의 인수로 들어온 s가 블루슬라임일 수도 있고 레드슬라임일 수도 있기 때문에 if문으로 구분을 시켜놨습니다. 블루슬라임이면 치료함수를 수행하고 그밖의 경우(레드슬라임일 경우)에는 공격함수를 수행하도록 한거죠.




정상적으로 실행되는지 확인하시구요^^



그런데말입니다. 아래 그림을 다시 보시죠.




만약에 블루슬라임이 10마리고 레드슬라임이 1마리 있을때 위의 방식대로 하자면 if를 10번 사용해야되는 문제점에 봉착하게 됩니다. s를 객체와 비교하지 말고 클래스와 비교하는 방법은 없을까요? 이를테면,


if (s == BlueSlime)


이렇게 말이죠. 물론 이렇게 코딩하면 에러가 나지만 's가 블루슬라임의 객체인가'라는 방식으로 접근하면 가능합니다. 다음 시간에 알아보죠.


감사합니다.


+ Recent posts