속성과 메서드
객체인 검술사, 요정, 도적은 캐릭터 클래스의 특성인 체력과 공격력을 공통으로 가집니다. 객체마다 특성의 구체적인 값은 다릅니다. 예를 들어, 검술사는 체력이 100이지만, 요정은 체력이 60일 수 있습니다. 공격력도 객체마다 값이 다 다릅니다. 값이 달라지므로 이를 변수에 저장합니다. 클래스의 특성을 저장하는 변수를 속성(attribute)이라고 합니다. 속성의 사전적 의미가 ‘사물의 특징이나 성질’이므로 클래스의 속성이란 ‘클래스가 가진 특징’을 의미합니다.
캐릭터 클래스에는 공격하기라는 기능도 있습니다. 캐릭터 클래스에 공격하기 기능이 있다면, 이 클래스를 바탕으로 생성한 검술사, 요정, 도적 객체도 동일한 기능을 갖게 됩니다. 클래스의 기능은 앞서 배운 사용자 정의 함수로 표현할 수 있습니다. 클래스의 기능을 표현하는 사용자 정의 함수를 메서드(method)라고 합니다. 메서드는 사용자 정의 함수와 딱 한 가지만 다르고 다른 부분은 모두 동일한데, 이 부분은 차차 배워 가겠습니다. 속성과 메서드는 모두 클래스에 포함됩니다.
▲ 그림 14-2 속성과 메서드
캐릭터 클래스에서 모든 캐릭터는 체력과 공격력이라는 속성을 가져야 한다고 정해 놨습니다. 클래스를 바탕으로 만든 검술사, 요정, 도적이라는 객체는 속성에 구체적이고 개별적인 값을 가지게 됩니다. 예를 들어, 검술사의 체력은 100, 공격력은 10입니다. 요정은 각각 60, 5이고 도적은 85, 8이죠. 검술사, 요정, 도적 모두 체력과 공격력이라는 특성을 가지고 있지만 그 값은 각각 다릅니다.
이처럼 동일한 속성이나 기능을 가지고 있지만 세부 값만 변경해 여러 번 사용해야 할 때, 클래스로 미리 정의할 수 있습니다. 그리고 필요할 때마다 클래스에 개별 값을 넣어 객체를 만들고요.