Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 (hintprotected-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.


...