Oppgaven handler om en AdvancedAccount-klasse, som håndterer data i en konto. Denne klassen er en utvidelse av Account-klassen, men stiller større krav til innkapsling og validering. Tilstanden i AdvancedAccount-objekter er som følger:
- balance - et desimaltall som angir beløpet som er på kontoen
- interestRate - et desimaltall som angir rentefot som prosentpoeng
Begge verdiene den samme som i Account-klassen, balance og interestRate. Begge verdiene skal settes når objektet opprettes og ingen av verdiene kan være negative. Hvis et argument i konstruktøren ikke er gyldig skal tilstanden settes til 0.
AdvancedAccount-klassen har i tillegg til metodene deposit og addInterest en ny metode withdraw, med følgende oppførsel:
...