...
For alle registreringsmetodene skal det utløses et IllegalArgumentException, dersom et argument er negativt. I så fall skal objektet ikke endres.
Et MobileSubscription-objekt inneholder data om et abonnement, slik at en kan regne ut månedsavgiften basert på forbruk som er registrert i et MobileUsage-objekt.
Del 1 – Innkapsling og validering: teori
Ta utgangspunkt i koden fra Account-klassen og besvar følgende spørsmål:
...
MobileSubscription-klassen inneholder metoder for å lese og sette følgende hele øreverdier:
- callCost - kostnad pr. samtale
- callMinuteCost - kostnad pr. minutt, beregnes pr. sekund
- messageCost - kostnad pr. melding
- receiveMBytesCost - kostnad pr. megabyte (1MB = 1024 * 1024 bytes) mottatt
- sentMBytesCost - kostnad pr. megabyte (1MB = 1024 * 1024 bytes) sendt
For hver av disse er det en get- og en set-metode, med navn etter Java-konvensjonen. Som for registreringsmetodene i MobileUsage, så skal et IllegalArgumentException-unntak utløses for negative argumenter.
I tillegg har MobileSubscription-klassen følgende metode for å regne ut avgift basert på akkumulert forbruk:
- int computeTotalCost(MobileUsage) - beregner total kostnad for forbruket som er registrert (akkumulert) i MobileUsage-objektet som gis som argument.
Del 1 – Java-kode for MobileUsage
Implementer MobileUsage-klassen iht. kravene over.
JExercise-testkode for denne oppgaven finner du her: encapsulation/MobileUsageTest.java. jextest-koden for testen finner du her: encapsulation/MobileUsage.jextest
...
Del 2 - Java-kode
Implementer endringene fra Account-klassen i den nye Account-klassen med oppførsel som er beskrevet MobileUsage-klassen iht. kravene over.
JExercise-testkode for denne oppgaven finner du her: encapsulation/AccountTestMobileSubscriptionTest.java. jextest-koden for testen finner du her: encapsulation/MobileSubscription.jextest
Include Page | ||||
---|---|---|---|---|
|
...