1 분 소요

현실 세계에서는 종종 같은 종류의 많은 개별 객체를 찾을 수 있습니다.

예를들면 제조사와 모델이 모두 같은 수천 대의 다른 자전거가 존재할 수 있습니다.
각각의 자전거는 동일한 청사진 세트(blueprints)로 제작되었으므로 동일한 구성 요소를 포함합니다.
이를 객체 지향 용어로 자전거는 자전거로 알려진 객체 클래스인스턴스라고 합니다.
클래스는 개별 객체가 생성되는 청사진(blueprint) 입니다.

class Bicycle {

   int cadence = 0;
   int speed = 0;
   int gear = 1;

   void changeCadence(int newValue) {
      cadence = newValue;
   }

   void changeGear(int newValue) {
      gear = newValue;
   }

   void speedUp(int increment) {
      speed = speed + increment;
   }

   void applyBrakes(int decrement) {
      speed = speed - decrement;
   }

   void printStates() {
      System.out.println("cadence:" +
              cadence + " speed:" +
              speed + " gear:" + gear);
   }
}

케이던스, 속도 및 기어 필드는 개체의 상태를 나타냅니다.
메서드(changeCadence, changeGear, speedUp 등)는 외부 세계와의 상호 작용을 정의합니다.

Bicycle 클래스에 기본 메서드가 포함되어 있지 않다는 것을 눈치채셨을 것입니다.
완전한 응용 프로그램이 아니기 때문입니다. 응용 프로그램에서 사용할 수 있는 자전거의 청사진일 뿐입니다.
새 Bicycle 객체를 만들고 사용하는 책임은 응용 프로그램의 다른 클래스에 속합니다.

다음은 두 개의 별도 Bicycle 객체를 만들고 해당 메서드를 호출하는 BicycleDemo 클래스입니다.

class BicycleDemo {
    public static void main(String[] args) {

        // Create two different 
        // Bicycle objects
        Bicycle bike1 = new Bicycle();
        Bicycle bike2 = new Bicycle();

        // Invoke methods on 
        // those objects
        bike1.changeCadence(50);
        bike1.speedUp(10);
        bike1.changeGear(2);
        bike1.printStates();

        bike2.changeCadence(50);
        bike2.speedUp(10);
        bike2.changeGear(2);
        bike2.changeCadence(40);
        bike2.speedUp(10);
        bike2.changeGear(3);
        bike2.printStates();
    }
}

참조

태그:

카테고리:

업데이트:

댓글남기기