Oystein Kristoffer Tveit b41d133be1 | ||
---|---|---|
.. | ||
Account.md | ||
Encapsulation.md | ||
LineEditor.md | ||
Person.md | ||
README.md | ||
Vehicle.md |
README.md
Ø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
NB: Viktig beskjed!
Etter at du har hentet ned/pullet denne øvingen, må du høyreklikke på prosjektet og kjøre Maven -> Update Project. Vi har fikset problemet med .classpath-filene, og det er veldig viktig at dette blir gjort for at prosjektet fortsatt skal funke! Hvis du har gjort endringer i en .classpath-fil vil du få en merge-conflict når du puller øvingen. Løsning på dette problemet finner du her.
Dette må du gjøre
Del 1: Teori
Les wikisiden om 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 (Varierende)
- Account (Lett)
- Person (Medium)
- Vehicle (Medium)
Oppgavene for denne delen skal du lagre i ovinger/src/main/java/encapsulation
. Test-filene for å verifisere korrekt implementasjon ligger i ovinger/src/test/java/encapsulation
.
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 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.
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.