...
Klassen skal implementere logikken ofte funnet på stoppeklokker på smarttelefoner.
For å holde styr på tiden som går vil StopWatch-klassen bli kalt utenfra (altså noe du slipper å implementere i denne oppgaven) på en tick(int)-metode. I dataverdenen er et tick (tikk på norsk) minste målbare diskret tidsenhet. I denne oppgaven er 1 tikk = 1 millisekund. F.eks. vil et kall tick(3) fortelle en StopWatch-instans at 3 tikk har gått siden sist gang tick() ble kalt. StopWatch skal fungere på følgende måte:
|
StopWatch-klassen må ha metoder for å spørre om tilstanden og metoder for å endre tilstanden.
...
- void tick(int ticks) - forteller klokken at ticks antall tikk har gått siden sist gang metoden ble kjørt.
- void start() - starter klokken.
- void lap() - avslutter nåværende rundetid og starter en ny.
- void stop() - stopper klokken.
Del 1 -
...
Tilstandsdiagram
Tegn et objekttilstandsdiagram for en tenkt bruk av StopWatch-klassen. Velg en sekvens av kall som både starter klokken, tar rundetider og stopper klokken.
...
Lag en passende toString()-metode og en main-metode, slik at du kan sjekke at oppførselen stemmer med tilstandsdiagrammet (bruk samme sekvens av kall).
JExercise-testkode Testkode for denne oppgaven finner du her: stateandbehavior/StopWatchTest.java. Original-koden (jextest) finner du her: stateandbehavior/StopWatch.jextest.
Include Page Bunntekst for JExercise- oppgaver Bunntekst for JExercise- oppgaver