Files
oops/oppgavetekster/oving4/README.md
Andreas Omholt Olsen 7dd68c1ed8 Add oving 4
2026-02-02 10:57:55 +01:00

3.3 KiB

Øving 4: Objektstrukturer

Øvingsmål

  • Lære hva assosiasjoner er og hvordan dette brukes i OO
  • Lære hvordan man sikrer konsistent oppførsel mellom assosierte objekter

Øvingskrav

  • Kunne implementere klasser som har assosiasjoner til én eller flere andre klasser
  • Kunne sikre at disse assosiasjon er konsistente i enkle objektstrukturer
  • Kunne implementere metoder som oppretter, oppdaterer og fjerner slike assosiasjoner

Dette må du gjøre

Del 1: Programmering

I denne øvingen skal du velge og gjennomføre ENTEN både Partner- og Card del 2-oppgavene ELLER minst én av Twitter-, Stopwatch- og Person-oppgavene. Merk at noen av oppgavene i neste øving (øving 5), bygger videre på noen av oppgavene under, disse er uthevet med fet skrift. Det er ikke et krav at man gjør de uthevede oppgavene, men de gir flere oppgaver å velge mellom i øving 6.

Gjør enten begge disse:

Eller minst én av følgende oppgaver:

Oppgavene for denne øvingen skal du lagre i src/main/java/oving4. Test-filene ligger i src/test/java/oving4.

Alle oppgavene ovenfor er høyst eksamensrelevante og det anbefales å ta en titt på alle sammen.

Del 2: Klassediagram

  • Lag et klassediagram for en av oppgavene du velger. Husk å få med relasjonene mellom klassene.

Diagrammet kan for eksempel skrives på papir eller tegnes/lages i et valgfritt program. Du trenger ikke levere inn diagrammene, men de skal vises til studass under godkjenning av øvingen.

Del 3: Testing

Skriv kode som tester oppførselen til CoffeeCup-klassen, dvs. at du skal teste om metodene i listen under har rett oppførsel og returnerer det de skal, i tillegg til at du skal teste konstruktørene. Det er ikke nødvendig å teste absolutt alle mulige tilfeller, men det kreves at du tester den grunnleggende funksjonaliteten. Basert på resultatene dine, vurder om klassen er implementert på en logisk måte.

  • double getCapacity()
  • double getCurrentVolume()
  • void increaseCupSize(double)
  • void drinkCoffee(double)
  • void fillCoffee(double)

Du finner CoffeeCup-klassen under src/main/java/oving4/testing.

Her er det anbefalt å bruke JUnit, men det er lov å teste vha. main()-metoden også. Dersom du bruker JUnit må du opprette testen under navnet CoffeeCupTest i src/test/java/oving4/testing.

Hjelp / mistanke om bugs

Ved spørsmål eller behov for hjelp konsulter studassen din i saltiden hans/hennes. Du kan også oppsøke andre studasser på sal eller legge ut et innlegg på Piazza.

Godkjenning

Last opp kildekode på Blackboard innen den angitte innleveringsfristen. Innlevert kode skal demonstreres for en læringsassistent innen én uke etter innleveringsfrist. Se for øvrig Blackboard-sidene for informasjon rundt organisering av øvingsopplegget og det tilhørende øvingsreglementet.