...
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).
Del 3 - JavaFX
Dersom Eclipse har blitt installert som forklart på installasjon av eclipse har du mulighet til å høyreklikke på prosjektmappen (ovinger) -> Team -> Pull for å laste nødvendige filer for denne øvingen. Da skal det ligge StopWatchController.java og StopWatch.fxml i prosjektmappen din, i pakken "stateandbehavior". Disse utgjør en JavaFX-applikasjon, og bruker StopWatch-klassen du har laget. Kjør applikasjonen ved å høyreklikke på StopWatch.fxml -> Run As -> FXML application, og observer hva som skjer.
Åpne StopWatchController og finn ut hvor StopWatch-klassen din blir brukt, og kommenter kort hva som skjer med den. Det er ikke et krav at du forstår resten av koden i StopWatchController, du skal kun forklare hvordan klassen din blir brukt.
Testkode JExercise-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