Versions Compared

Key

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

...

En bank består av mange ulike type kontoer: sparekontoer, brukskontoer, depositumskontoer, støttekontoer etc. Felles for alle kontoer er den abstrakt AbstractAccount-klassen, som er en utvidet implementert variant av grensesnittet fra SavingsAccount-oppgavenSiden disse har mye felles, f.eks. har alle en balanse, så er det praktisk å samle så mye som mulig av den felles logikken i en superklasse, som alle kan arve fra. Denne superklassen er imidlertid ikke noen egen type konto, og derfor gjør vi den abstrakt, slik at den ikke kan instansieres. De konkrete konto-klassene som arver fra den, må selvsagt være instansierbare.

Metodene vi velger å ha i AbstractAccount-klassen, bygger på metodene vi vi definerte i Account-grensesnittet i SavingsAccount-oppgaven, og er som følgerAbstractAccount-klassen har tre metoder:

  • void deposit(double) - øker kontobalansen med innskutt beløp. Merk at det innskutte beløpet må være positivt. Ved ulovlig innskudd skal en IllegalArgumentException utløses.
  • void withdraw(double) -  Metoden kaller internalWithdraw(uttaksbeløp), som implementeres i hver subklasse. Hvis uttaksbeløpet er negativt skal metoden utløse en IllegalArgumentException. 
  • abstract void internalWithdraw(double) - minsker kontobalansen med beløpet som blir tatt ut. Merk at reglene for uttak er ulik for klassene som implementerer AbstractAccount, og må derfor implementeres i hver klasse. Hvis det ikke er mulig å ta ut det angitte beløpet skal metoden utløse en IllegalStateException.
  • double getbalance() - returnerer kontobalansen.

...