...
Expand | |||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||
Oppgave a)Unit-klassen er utformet slik at instanser ikke skal kunne endres etter at de er opprettet. Hva er generelle fordeler og ulemper med klasser som gir ikke-modifiserbare (immutable) instanser?
Oppgave b)Skriv ferdig de tre konstruktørene og definer nødvendige felt. Hva er hensikten med bruken av throws-nøkkelordet, slik det er brukt her? Er det strengt tatt nødvendig og evt. hvorfor/hvorfor ikke?
Oppgave c)Hva er hensikten med å definere en toString()-metode?
Se også toString()-metoden Oppgave d)Nederst i klassen defineres en del meter-relaterte Unit-instanser (m, km og dm og cm). Tegn objektdiagram som illustrerer objektstrukturen som disse instansene utgjør.
Se også Objektdiagrammer Oppgave e)Metoden findCommonBaseUnit er sentral i konvertering av verdier mellom ulike enheter. Den skal virke slik at dm.findCommonBaseUnit(km) returnerer m-instansen. Skriv ferdig metoden.
Oppgave f)convert-metoden er ferdigskrevet og bruker de to hjelpemetodene convertToBase og convertFromBase. De to hjelpemetodene kaller også seg selv. Forklar hvilke kall som gjøres til disse (inkludert de til seg selv) og hvilke argumenter de får og verdier de returnerer, i løpet av utførelsen av dm.convert(2.0, km).
Oppgave g)valueOf-metoden ”oversetter” fra et enhetssymbol til en Unit-instans, litt på samme måten som Double.valueOf lager en Double-verdi fra en String. Men merk at Unit.valueOf ikke skal lage nye instanser, men returnere en av de predefinerte! Skriv ferdig valueOf-metoden.
Lenke til løsningskode: Unit.java (og testen: UnitTest.java)
|
Expand | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||
Oppgave a)Hva er hensikten med get-metoder? Fullfør konstruktøren, get-metodene og deklarer nødvendige felt.
Se også Innkapsling Oppgave b)valueOf-metoden ”oversetter” fra en String til en Value-instans, litt på samme måten som Double.valueOf lager en Double-verdi fra en String. Skriv ferdig valueOf-metoden.
Oppgave c)Skriv ferdig add, compute og mult-metodene.
Oppgave d)Value-klassen implementerer Comparable<Value>. Hvorfor er det nyttig? Skriv ferdig compare-metodene.
Lenke til løsningskode: Value.java (og testen: ValueTest.java) Se også Sortering med Comparable og Comparator
|
Expand | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||
Oppgave a)Values-grensesnittet utvider Iterable<Double>. Hvorfor er det nyttig/praktisk?
Se også Iterasjon med Iterator og Iterable Oppgave b)Values-grensesnittet er ment å støtte observerbarhet og observert-observatør-teknikken, men deklarasjonen av metodene for lytterhåndtering er erstattet av ”…”. Skriv de to deklarasjonene.
Se også Observatør-observert-teknikken Oppgave c)Skriv ferdig konstruktøren og de to appendValue-metodene i ValueSeries-klassen. Definer nødvendige felt.
Oppgave d)Implementer metodene i ValueSeries-klassen, som er nødvendige for å gjøre klassen komplett.
Lenke til løsningskode: ValueSeries.java (og testen: ValueSeriesTest.java)
|
Expand | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||
I denne delen skal du skrive testkode for Value- og ValueSeries-klassene. Hensikten er å vise at du behersker testmetodikken, og du kan, men trenger ikke bruke JUnit-rammeverket. Oppgave a)Skriv testkode for Value sin valueOf-metode.
Se også Testing av unntak Oppgave b)Forklar med tekst og kode hvordan du kan teste at ValueSeries håndterer lyttere (av typen ValuesListener) og implementerer observerbarhet riktig.
|
...