47 lines
2.5 KiB
Markdown
47 lines
2.5 KiB
Markdown
# Øving 2: Innkapsling og validering
|
||
|
||
**Ø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
|
||
|
||
### Del 1: Teori
|
||
|
||
Les [wikisiden om innkapsling](https://www.ntnu.no/wiki/display/tdt4100/Innkapsling) og svar på følgende:
|
||
|
||
- Hva er en **synlighetsmodifikator**?
|
||
- Hva er forskjellen på **private** og **public** og når brukes de?
|
||
|
||
Teori-oppgavene besvares i en tekstfil eller på papir, og gjennomgås med studass ved godkjenning.
|
||
|
||
### Del 2: Programmering
|
||
|
||
Velg minst 2 av følgende oppgaver:
|
||
|
||
- [Innkapsling og validering av 3 eksisterende klasser](./Encapsulation.md) (Varierende)
|
||
- [Account](./Account.md) (Lett)
|
||
- [Person](./Person.md) (Medium)
|
||
- [Vehicle](./Vehicle.md) (Medium)
|
||
|
||
Oppgavene for denne øvingen skal lagres i [`src/main/java/oving2`](../../src/main/java/oving2). Test-filene som kjøres for å teste koden ligger i [`src/test/java/oving2`](../../src/test/java/oving2).
|
||
|
||
Oppgavene er markert 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.
|
||
|
||
Før du setter i gang kan det vært lurt å lese nevnte [wikiside om innkapsling](https://www.ntnu.no/wiki/display/tdt4100/Innkapsling) nøye. Forelesningene og tilhørende øvingsforelesning er selvsagt også lure å få med seg.
|
||
|
||
### 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/ntnu.no/spring2025/tdt4100).
|
||
|
||
### Godkjenning
|
||
|
||
Last opp kildekode på Blackboard innen den angitte innleveringsfristen. Innlevert kode skal demonstreres for stud.ass innen én uke etter innleveringsfrist. Se for øvrig Blackboard-sidene for informasjon rundt organisering av øvingsopplegget og det tilhørende øvingsreglementet.
|