Lecture Question • Simulate a Car without using control flow (ie. Use the state pattern). • In a package named lecture15, create a Class named Car with no constructor parameters. • The Car must contain the following methods as its API: • shiftToDrive(): Unit • shiftToPark():Unit • shiftToReverse():Unit • accelerate(): Unit • brake(): Unit • velocity(): Int Testing: In the tests package, write a test suite named TestCar that will test all the functionalities on the spec sheet Note: Only call the API methods while testing. Other classes/methods/ variables you create will not exist in the grader submissions • Car is initially in Park. • Initial velocity is 0. • When the Car is in Park: • Accelerating and braking have no effect. • The car can shift into drive or reverse. • When the car is in Drive: • Calling accelerate will increase the velocity of the car by 10… • Calling brake will completely stop the car (velocity of 0). • The car cannot shift into Reverse. • The car cannot shift into Park while moving. • When the car is in Reverse: • Calling accelerate will decrease the velocity of the car by 5 (negative velocity). • Calling brake will completely stop the car (velocity of 0). • The car cannot shift into Drive. • The car cannot shift into Park while moving.
Lecture Question
• Simulate a Car without using control flow (ie. Use the state pattern).
• In a package named lecture15, create a Class named Car with no constructor parameters.
• The Car must contain the following methods as its API:
• shiftToDrive(): Unit
• shiftToPark():Unit
• shiftToReverse():Unit
• accelerate(): Unit
• brake(): Unit
• velocity(): Int
Testing: In the tests package, write a test suite named TestCar that will test all the functionalities on the spec
sheet
Note: Only call the API methods while testing. Other classes/methods/ variables you create will not exist in
the grader submissions
• Car is initially in Park.
• Initial velocity is 0.
• When the Car is in Park:
• Accelerating and braking have no effect.
• The car can shift into drive or reverse.
• When the car is in Drive:
• Calling accelerate will increase the velocity of the car by 10…
• Calling brake will completely stop the car (velocity of 0).
• The car cannot shift into Reverse.
• The car cannot shift into Park while moving.
• When the car is in Reverse:
• Calling accelerate will decrease the velocity of the car by 5 (negative velocity).
• Calling brake will completely stop the car (velocity of 0).
• The car cannot shift into Drive.
• The car cannot shift into Park while moving.
Step by step
Solved in 5 steps