OOP 과제

[TOC]


1. 요구사항

  • 다음 요구사항을 읽고 A라는 사용자가 수동 변속기의 차량과 자동 변속기의 차량을 운행(시동, 기어 변속, 주행, 후진)을 설계 및 구현해주세요.
  • (필수 사항 : 역할과 구현을 분리하여 설계)
  • 차량의 변속기 종류에는 수동, 자동 두 가지가 있습니다.
  • 수동 변속기는 클러치, 엑셀, 브레이크, 기어(1,2,3,4,5)로 구성되고,
  • 자동 변속기는 엑셀 브레이크, 변속기로 구성됩니다.
  • 차량을 시동 -> 기어 변속 -> 후진으로 이루어져야 합니다.

1.1. [시동 방법]

  • 수동 :

    • 클러치와 브레이크를 동시에 밟는다.

    • 시동을 건다.

  • 자동 :

    • 브레이크를 밟는다.
    • 시동을 건다.

1.2. [기어 변속]

  • 수동 :

    • 클러치를 밟는다

    • 기어를 변속한다.

    • 클러치에서 발을 떼고 엑셀을 밟는다.

  • 자동 :

    • 엑셀을 밟아서 속도를 올리거나 브레이크 밟아서 속도를 줄인다.

1.3. [후진]

  • 수동 :

    • 클러치를 밟는다.

    • 기어를 R로 변속한다.

    • 클러치에서 발을 떼고 엑셀을 밟는다.

  • 자동 :

    • 브레이크를 밟는다.

    • 변속기를 R로 변속한다.

    • 브레이크를 뗀다.

    • 엑셀을 밟는다.

2. 설계

2.1. 변속기의 역할

  • 시동 건다.
  • 변속한다.
  • 후진한다.

2.2. 상태를 나타내는 객체

  • 페달 (엑셀, 브레이크, 클러치)
    • turnOn 밟고 있음
    • turnOff 떼고 있음
  • 자동 기어
    • Rear
    • Driving
  • 수동 기어
    • 1
    • 2
    • 3
    • 4
    • 5

2.3. 캡슐화가 가능한 전략

  • 시동 건다.
  • 후진한다.