Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

I mange sammenhenger vil objekter av en klasse inneholde eller "eie" objekter av andre klasser. Når en klasse er assosiert med én instans av en (annen) klasse er dette en 1-1-assosiasjon og når en klasse er assosiert med flere instanser av en annen klasse er dette en 1-n-assosiasjon. I denne oppgaven skal du implementere logikk for en kortstokk som inneholder kort. Nedenfor beskrives begge klassene og metoden metodene disse skal inneholde.

Card-klassen er en såkalt verdiklasse, som kodes slik at objektene ikke kan endres etter at de er opprettet. Et Card-objekt har en kortfarge, som er en av bokstavene 'S' (for spades), 'H' (for hearts), 'D' (for diamonds) og 'C' (for clubs), og tallverdi, som er et heltall mellom 1 (ess) og 13 (konge). Følgende metoder må implementeres:

  • Card(char, int) - konstruktøren initialiserer kortfarge og tallverdi med henholdsvis første og andre argument. Konstruktøren må utløse unntak av typen IllegalArgumentException hvis en (eller begge) av disse verdiene er ugyldige.
  • getSuit() - returnerer kortfargen som en char, en av 'S''H''D' eller 'C'.
  • getFace() - returnerer tallverdien som en int mellom 1 og 13 (inklusive).
  • toString() - returnerer en streng som består av <suit><face> e.g. for spar ess skal "S1" returneres.

...

Kjør den tilhørende JavaFX-applikasjonen (kjør NimCardDeck.fxml som FXML Application) og observer hva som skjer. Åpne NimControllerCardDeckController.java og finn ut hvor NimCardDeck-klassen din blir brukt, og kommenter hva som skjer med den. Det er ikke et krav at du forstår resten av koden i NimControllerCardDeckController, du skal kun forklare hvordan klassen din blir brukt.

...