Øvingsmål
- Lære å innkapsle klasser og metoder etter god programmeringsskikk
- Lære å validere argumenter for å sikre gyldig tilstand
Øvingskrav
- Kunne forstå og implementere hvordan en klasse best bør innkapsles
- Kunne skrive kode for å validere argumenter for å sikre gyldig tilstand
- Kunne utløse exceptions ved ugyldige argumenter i en metode
Dette må du gjøre
Les wikisiden om Innkapsling og svar på følgende
...
- Innkapsling og validering av eksisterende klasser. Gjør dette for minst tre klasser. Skriv svar (stikkord / få, korte setninger) på spørsmål 1-4 enten som kommentarer i koden din eller i en egen fil som du laster opp sammen med besvarelsen din. Oppgavene om Rectangle, og UpOrDownCounter kan bare velges dersom de ikke allerede har blitt løst i en tidligere øving. De øvrige oppgavene (Calculator, Digit, LineEditor, Stack for tilfeldige String-objekter og ConstrainedLocation) kan velges for poeng uavhengig om de har blitt løst tidligere eller ikke. (Varierende)
- Account (Lett)
- Person (Medium)
- Vehicle (Medium)
I tillegg:
FXML-fil til en av oppgavene (Obligatorisk, se under for detaljer)
FXML-filer definerer et brukergrensesnitt, og du skal lage et grensesnitt som dekker bruk av en av klassene dine (f.eks. skal da alle metoder ha en mulighet for å kalles gjennom grensesnittet). Merk at du ikke bes om å koble dette brukergrensesnittet til klassen din, kun å lage selve grensesnittet. Dette kan f.eks. gjøres i SceneBuilder, som du kan lese om bruk av her.
Oppgavene er merket med en vanskeliggrad relativt til hverandre. Det er en god idé å begynne med de lettere oppgavene dersom du ikke er komfortabel med pensum så langt, men det er anbefalt å prøve seg på de vanskeligere oppgavene om du synes de første oppgavene er uproblematiske. Dersom du allerede føler deg trygg på punktene i øvingskravene kan du forsøke å gå rett på de vanskeligere oppgavene. Du er selvfølgelig velkommen til å løse flere oppgaver enn minstekravet, hvilket lurt gjøres med tanke på eksamen og et langt liv som programmerende.
...
Include Page | ||||
---|---|---|---|---|
|