5.3 클래스를 만들어 보자

게임을 구현함에 따라 조금씩 프로그램이 길어졌습니다. 제 4장에서는 기능의 일부를 별개의 메소드로 분할하는 방법으로 프로그램을 읽기 쉽게 할 수 있었습니다. 여기서는 프로그램을 읽기 쉽고 관리하기 쉽게 하기 위해 클래스를 만들어 봅니다.

Dice 클래스를 만들어 보자.

이 장에서는 주사위를 의미하는 클래스를 만들어봅니다. “클래스를 만든다”라고 하면 불안해 할지도 모릅니다만, 어렵지 않으니 도전해봅시다.

우선 클래스에 대해서 복습해 봅시다. 클래스라는 것은 “데이터를 조작하는 명령을 준비해놓은 도구함”과 같은 것으로 필드, 컨스트럭터, 프로퍼티, 메소드, 이벤트라는 멤버를 가지고 있습니다. 클래스를 만들 때에는 어떠한 멤버를 만들것인가를 설계할 필요가 있습니다. 이번에는 다음과 같은 멤버를 가진 클래스를 작성합니다.

(중략)

필드라는 것은 클래스 속의 데이터를 말합니다. 이번은 _number라는 int형 변수를 선언합니다. 클래스 속에서만 액세스 가능하고 클래스 밖에서는 액세스 할 수 없습니다. 변수명에 언더스코어(_)를 붙이고 있는 것은 이 후에 선얼할 프로퍼티명과 중복되지 않도록 하기 위함입니다.

컨스트럭터라는 것은 gcnew()로 클래스를 인스턴스화 할 때 움직이는 메소드입니다. 다시말해 초기화 전용의 메소드입니다. 이번에는 Dice()라는 초기화와 Dice(int형 인수)라는 초기화 2개를 작성합니다. 전자의 방법으로 초기화하면 최초의 주사위 값은 1이 되고, 후자의 방법으로 초기화한 경우 인수의 값이 주사위 값으로 설정됩니다.

프로퍼티는 클래스의 데이터를 의미합니다만, 실제로는 필드의 값을 넣고빼는 역할을 하고 있습니다. 필드에 값을 설정하는 set용 Number프로퍼티와 필드의 값을 취득하는 get용 Number 프로퍼티를 만듭니다.

메소드는 클래스로의 명령으로 이번에는 주사위의 값을 랜덤으로 변화시키는 Shake()라는 명령을 작성합니다.

이벤트는 클래스에서 발생한 변경등의 통지를 하는 장치입니다. 이번에는 구현하지 않습니다.

또 마지막으로 주의할 것이 1개의 클래스를 만들기 위해서는 2개의 파일이 필요하다는 것입니다. 1개는 헤더 파일이고, 하나는 소스 파일입니다.

(후략)

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.