객체지향의 4가지 특징

씩씩한 조약돌·2023년 6월 21일
0

공부 기록✍️

목록 보기
31/37


객체지향프로그래밍은 객체를 사용하는 프로그래밍 방식입니다.

객체지향프로그래밍을 하기 전에는 절차지향이라고 해서
함수나 변수들을 절차에 따라 만들어서 프로그래밍을 했는데
그러다보니 반복적인 코드도 많고, 변수와 함수가 많다보니 관리하기도 힘들었습니다.

그래서 나온게 객체지향프로그래밍입니다.

객체지향에는 추상화, 캡슐화, 상속성, 다형성과 같은 4가지 특징이 있는데, 이 특징들을 rpg게임 캐릭터를 함께 만들면서 알아보도록 하겠습니다.

캐릭터의 직업에는 전사, 마법사, 궁수가 있습니다.

각각의 직업에는 이와 같은 특징들이 있습니다.
마구잡이로 적혀있지만 이 직업들의 공통점이 있습니다.


파란색은 무기, 주황색은 체력
연두색은 이동, 분홍색은 공격과 관련된 기술입니다.

이 공통점들을 모아 캐릭터라는 인터페이스를 만들었습니다.

이처럼 어떤 사물의 공통적인 특징을 하나의 개념으로 만드는 것을 추상화라고 합니다

또한 각각의 직업마다 공통되는 기능을 캐릭터 인터페이스에게 상속받아서 재사용할 수도 있습니다. 이것을 상속성이라고 하는데요.

그리고 직업마다 공통되지 않은 부분이 있었는데요
전사는 방어력, 마법사는 마법능력, 궁사는 빠른속도
이렇게 상속성을 이용해 직업마다 기능을 확장해서 사용할 수도 있습니다.

다형성은 하나의 요청을 각각 다른 방식으로 동작하게 하는 것입니다.
같은 공격하다라는 기능을 상속받았지만
전사는 칼을 휘두르고, 마법사는 마법을 쓰고, 궁사는 활을 쏘도록 할 수 있습니다.

마지막 캡슐화입니다. 정보들을 외부로부터 숨기는 것을 의미하는데요
저희가 미리 세팅해둔 캐릭터의 정보들을 유저들이 전사한테 마법지팡이를 주는 것으로 바꿔버리면 기능이 꼬이고 게임이 저희가 짜놓은 로직대로 진행이 안될수도 있습니다. 그래서 private같은 방식으로 외부로부터 숨기고, 작업은 setter, getter함수를 이용해 변경할 수 있도록 처리합니다.

여기까지 객체지향의 4가지특성을 이용해 캐릭터를 함께 만들어보았습니다!

그림출처
전사 아이콘 제작자: max.icons - Flaticon
마법사 아이콘 제작자: max.icons - Flaticon
Rpg 아이콘 제작자: max.icons - Flaticon

profile
씩씩하게 공부중 (22.11~)

0개의 댓글