We gaan zo een klasse bouwen en methoden implementeren waarmee we gebruik van een nieuwe auto gaan simuleren. Lees eerst alle eisen door voordat je begint met bouwen!
Maak een Car
klasse die de volgende eigenschappen op slaat: merk, kenteken, tank grootte in liters, huidige tank stand, verbruik (verbruik 16 betekent 16 km op 1 liter benzine) en de kilometerstand.
Car
klasse wordt aangemaakt moet de tank vol zijn en de kilometerstand op 0 staan.drive(int km)
: Deze methode simuleert dat de auto rijdt. Op basis van het aantal kilometer dat er gereden wordt neemt de hoeveelheid benzine in de tank af (en de kilometerstand toe). Als de tank leeg is stopt de auto.fuel(int liters)
: Deze methode simuleert dat de tank wordt bijgevuld. Let op dat de tank niet verder bijgevuld kan worden dan de maximale tank grootte.toString()
methode die de volgende string oplevert: merk (kenteken), tankstand: (huidig / maximaal)) en kilometerstand.We laten het klassendiagram in dit geval opzettelijk open: Je moet zelf bepalen welke attributen en (hulp)methoden je in de klasse Car
opslaat.
De oplettende lezer zal zien dat deze opdracht een kopie is uit OGP week 1. Het is niet het doel om simpelweg deze opdracht nogmaals te doen. (Kopieer gewoon de code (of het project) van de vorige keer.) Deze keer verwachten we dat je unittests schrijft die bevestigen dat de code werkt zoals vebeschreven in de requirements:
Req.# | Description | Result |
---|---|---|
R01 | Na instantiatie heeft de auto een geldige nummerplaat. | Untested |
R02 | Na instantiatie heeft de auto een volle tank. | Untested |
R04 | Wanneer je de drive methode aanroept gaat het aantal km omhoog, en de hoeveelheid feul naar beneden. |
Untested |
R05 | Wanneer de tank (bijna) leeg is rijdt de auto niet. | Untested |
R06 | When the tank is full, no fuel may be added | Untested |
R07 | Wanneer je de tank bijvult kun je er niet te veel instoppen. | Untested |
R08 | Methoden die bepaalde argumenten niet accepteren gooien de verwachtte exceptie. | Untested |