...
Denne oppgaven bygger videre på Account-oppgavene under Gyldig tilstand, Innkapsling og Tilstand og oppførsel.
Del 1 - SavingsAccount implements Accout
En bank består av mange ulike type kontoer: sparekontoer, brukskontoer, depositumskontoer, støttekontoer etc. Felles for alle kontoer er Account-grensesnittet, som er definert under:
...
Vær oppmerksom på at du i Del 2 og 3 skal lage subklasser av SavingsAccount og at du ved å bruke rett innkapsling (hint: protected-modifikatoren) kan la subklassene nyttiggjøre seg superklassen i størst mulig grad.
JExercise-testkode for oppgavene finner du her: inheritance/SavingsAccountTest.java. Originalkoden (jextest) for testen finner du her: inheritance/SavingsAccountTest.jextest.
Del 2 - BSU extends SavingsAccount
I tillegg til generelle sparekontoer finnes det en spesiell type sparekonto som heter BSU. Du skal nå lage en BSU-klasse som arver fra SavingsAccount-superklassen. Her er målet at du skal gjenbruke mest mulig av superklassen og samtidig støtte BSU-spesifikk oppførsel. En BSU-konto er, i tillegg til å være en sparekonto, spesiell i den forstand at det kun er lovlig å sette inn inntil et forhåndsbestemt beløp per år (kr 25 000 for 2014 fastsatt av den nye regjeringen) og at det kun er lovlig å ta ut av det beløpet som er satt inn siste år. M.a.o. vil en ved årsskifte få mulighet til å sette inn nye innskudd innenfor innskuddsgrensen, men en har ikke lenger mulighet til å ta ut hele balansen (innskudd fra tidligere år låses). Dessuten gir en BSU-konto 20% skattefradrag for innskudd beløp.
...
BSU(double, double) - konstruktør som tar inn rentefoten på kontoen og et desimaltall som angir hvor mye det er tillatt å sette inn på kontoen per år.
double getTaxDeduction() - returnerer skattefradrag for inneværende år. Dette vil være 20% av innskutt(e) beløp siste år.
JExercise-testkode for oppgavene finner du her: inheritance/BSUTest.java. Originalkoden (jextest) for testen finner du her: inheritance/BSUTest.jextest.
...
ForeldreSpar(double, int) - konstruktør som tar inn rentefoten på kontoen og et heltall som angir antall lovlige uttak per år.
int getRemainingWithdrawals() - returnerer antall gjenstående uttak fra sparekontoen.
JExercise-testkode for oppgavene finner du her: inheritance/ForeldreSparTest.java. Originalkoden (jextest) for testen finner du her: inheritance/ForeldreSpar.jextest.
...