# Ø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 og Comparator * Kunne bruke grensesnittene Iterable og Iterator ## 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.