TDT4100/oppgavetekster/oving5/README.md

47 lines
2.3 KiB
Markdown

# Øving 5: Grensesnitt
**Øvingsmål**
* Lære hva grensesnitt er og hvordan disse defineres
* Lære hvordan man implementerer et grensesnitt
* Kjenne til grunnleggende funksjonelle grensesnitt
**Øvingskrav**
* Kunne lage grensesnitt og implementere disse med andre klasser
* Kunne bruke grensesnittene Comparable<T> og Comparator<T>
* Kunne bruke grensesnittene Iterable<T> og Iterator<T>
## Dette må du gjøre
### Del 1: Programmering
Gjør **minst to** av oppgavene under. Oppgavene (unntatt Twitter) skal lagres i `ovinger/src/main/java/interfaces`.
Filer til Twitter-oppgaven skal lagres i `ovinger/src/main/java/interfaces.twitter`.
* [CardContainer](./CardContainer.md)
* [CardComparison](./CardComparison.md)
* [CardPredicate](./CardPredicate.md)
* [Twitter](./Twitter.md)
* [Named](./Named.md)
* [BinaryComputingIterator](./BinaryComputingIterator.md)
* [StringGrid](./StringGrid.md)
* [RPNKalkulator med funksjonelle grensesnitt](./RPNCalc.md)
Disse oppgavene har noe ulik vanskelighetsgrad og omfang, og trolig stigende (i.e. CardContainer den enkleste og StringGrid den vanskeligste).
Alle er høyst eksamensrelevante og det anbefales følgelig å ta en titt på alle sammen.
### Del 2: Debugging
Gjør følgende oppgave om debugging og vis frem løsningen til studass på sal:
* [StringMergingIterator](./StringMergingIterator.md)
### Del 3: Sekvensdiagram
Lag et [sekvensdiagram](https://www.ntnu.no/wiki/display/tdt4100/Sekvensdiagrammer) som viser samhandlingen mellom et
`StringMergingIterator`-objekt og dens argumenter. Dvs. lag et [sekvensdiagram](https://www.ntnu.no/wiki/display/tdt4100/Sekvensdiagrammer)
som viser hvordan `StringMergingIterator` gjennom metodekall fletter verdiene fra de to gitte iteratorene (som blir tatt inn som argumentene til
`StringMergingIterator`-objektet).
### 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](https://piazza.com/).
### 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.