객체는 프로그램에서 살아가면서 어떤 행동을 수행하게 되고, 그 결과 시간이 지남에

따라 상태가 변하게 됩니다. 이는 세상살이와 비교해보아도 아주 자연스러운 것입니다.

 스타크래프트에 등장하는 질럿이라는 객체를 생각해 본다면 이해하기 쉽습니다.

게임속에서 질럿은 다른 유닛을 공격할 수도 있고, 지정한 위치로 이동할 수도 있습니다.

또한 다른 적들의 유닛에게 공격도 당할 수 있습니다. 질럿은 공격을 당하면 체력이나

쉴드가 점점 줄어들게 되겠지요.

 

질럿 클래스를 설계 할 때는 질럿 객체가 수행해야 할 기능과 질럿 객체가 가지고 있어야

정보를 반드시 고려해야 합니다. 실제 질럿의 개념을 제대로 구현하기 위해서는 소리를

내는 것, 다른 유닛을 공격하는 것, 이동할 수 있는 것등을  반드시 포함해야하고

질럿이 가지는 상태정보 그러니까 체력,쉴드,아머등의 상태정보도 유지하도록 해야 합니다.

질럿 객체의 예에서 처럼 자바에서 객체는 수행해야 할 기능과 현재 객체가 가지는

상태정보를 가지고 있습니다.

질럿이 가지고 있는 상태 정보들 그러니까 질럿의 체력이나 쉴드등은 질럿의 행동이나

행위를 나타내는 것이 아니라 질럿의 상태 정보를 의미합니다.

 

클래스의 설계자는 객체가 가지고 있어야 하는 상태정보의 값을 저장하고 유지하는

일련의 변수들을 필요로 하는데, 이 변수를 인스턴스 변수 또는 멤버 변수라고 합니다.

 

질럿의 경우 소리를 내고, 공격을 하고, 이동하는 등의 행위는 멤버 메소드를 통해서

실현이 되고, 체력,쉴드등의 상태를 나타내는 값들은 멤버 변수를 통해서 실현이 됩니다.

 

 

class Zealot {

                          int strength;                       // 질럿의 체력 값

                          int shields;                        // 질럿의 쉴드 값

                           Zealot() {

                           }

                          void sound() {

                                        System.out.println("My Life for Aiur");

                           }

             }

예제 1 - 7

 

예제 1 - 7은 모든 개개의 질럿은 체력 및 쉴드를 가지고 있어야 하기 때문에 멤버변수로

체력과 쉴드값을 저장할 수 있도록 두개의 멤버변수를 선언했습니다.

질럿의 체력과 쉴드는 간단한 숫자로 표현할 수 있으므로 가장 무난하게 사용할 만한

데이터형인 int형을 사용했습니다.

Zealot클래스에 멤버변수 strength, shields를 추가했으므로 질럿객체는 쉴드와 체력이라

는 상태를 정보를 가지게 되었습니다.

 

 

class BigRib {

                           int price = 2500;

                           String description = “best selling burger in 2002”;

                           int getPrice() {

                                        return price;

                           }

             }

예제 1 - 8

 

예제 1 - 8 BigRib햄버거 클래스를 새롭게 만들어 보았습니다.

BigRib햄버거 객체가 가지는 핵심정보인 가격이외에 BigRib 햄버거를 설명하는 정보인

description 변수를 추가했습니다.

만들어진 BigRib햄버거 객체는 항상 자신의 가격정보와 , description정보를 가지고

있습니다.

 

Posted by
,