I denne oppgaven skal du velge tre oppgaver som du har gjort i øving 1 fra listen nedenfor, og innkapsle og validere disse klassene.![](/wiki/plugins/servlet/confluence/placeholder/unknown-macro?name=metadata-list&locale=en_US&version=2)
![](/wiki/plugins/servlet/confluence/placeholder/unknown-macro?name=metadata-list&locale=en_US&version=2)
Skriv svar (stikkord/få, korte setninger) på spørsmål 1-4 (fra del 1 nedenfor) som kommentarer i koden din.
Oppgaver:
- Digit-oppgave
- UpOrDownCounter-oppgave
- Location-oppgave
- StopWatch-oppgave
- Rectangle-oppgave
- LineEditor-oppgave med fri peker
Merk at spesifikasjonen for LineEditor er litt utvidet for denne oppgaven. Se LineEditor-oppgave med fri peker.
Del 1 – Innkapsling og validering: teori
Ta utgangspunkt i (koden for) den originale klassen og besvar følgende spørsmål:
- Hvordan skal private og public brukes for at denne klassen skal være korrekt innkapslet?
- Hva slags validering bør legges til for å sikre gyldig tilstand?
- Hvilke metoder må evt. legges til?
- Vil du karakterisere denne klassen som data-orientert eller tjeneste-orientert. Begrunn svaret!
Del 2 - Java-kode
Implementer endringene foreslått i punktene 1-3 og prøv ut klassene.
Testkoder for denne oppgaven finner du her:
- encapsulation/DigitTest.java
- encapsulation/LineEditorTest.java (Original jextest-kode: https://raw.githubusercontent.com/hallvard/wiki.tdt4100/master/oppgaver/tests/encapsulation/LineEditor.jextest)
- encapsulation/RectangleTest.java
- encapsulation/UpOrDownCounterTest.java
- encapsulation/StopWatchTest.java (Original jextest-kode: encapsulation/StopWatch.jextest)
Testkodene viser om du har innkapslet på samme måte som fagstaben har gjort. Din kode kan fungere selv om testene feiler, dersom du har valgt en løsere/strammere innkapsling iht. argumentasjonen i 1-3. Er du enig med hvordan fagstaben har gjort det?
2 Comments
Unknown User (magneskj)
Det står ingenting om hvor mange av oppgavene man må gjøre for å få 50 deknings og omfangspoeng.
Må alle gjøres, eller bare et begrenset antall? Har allerede gjort alle sammen, men kan være nyttig for andre å vite.
Unknown User (palchrnj)
Takk for innspill - har oppdatert øvingsteksten nå.