Excerpt |
---|
Oppgaven handler om MobileUsage-klassen, som innkapsler data om bruk av mobilen, og MobileSubscription-klassen, som innkapsler data om abonnement og håndterer utregning av månedsavgift basert på bruk. |
...
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. 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.
...
Del 1 – Innkapsling og validering: teori
Ta utgangspunkt i koden fra Account-klassen og besvar følgende spørsmål:
...
- 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. Hint: Definer først passende felt og bruk så Eclipse sin innebyggede funksjon for å generere gettere og settere i Source-menyen. 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.
...
Del 2 - Java-kode
Implementer endringene fra Account-klassen i den nye Account-klassen med oppførsel som er beskrevet over. MobileSubscription-klassen iht. kravene over.
JExercise-testkode for denne oppgaven finner du her: encapsulation/AccountTest.java
Include Page | ||||
---|---|---|---|---|
|
...