47 lines
2.3 KiB
Markdown
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. |