Versions Compared

Key

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

...

Vi skal i denne oppgaven fokusere på sparekontoer og du skal nå lage en SavingsAccount-superklasse, som implementerer Account-grensesnittet. Konstruktøren og metodene SavingsAccount-superklassen må støtte er gjengitt herFunksjonaliteten som hver av metodene definert i grensesnittet over skal støtte er:

  • String getName() - returnerer navnet på kontoinnehaveren.
  • void setName(String) - setter navnet på kontoinnehaveren til parameterisert streng.
  • void deposit(double) - inkrementerer kontobalansen med innskutt beløp. Merk at det innskutte beløpet må være positivt. Ved ulovlig innskudd skal en IllegalArgumentException kastes.
  • void withdraw(double) - dekrementerer kontobalansen med beløpet som blir tatt ut. Merk at uttaksbeløpet må være positivt og dersom dette er tilfredsstilt skal et unntak av typen IllegalArgumentException kastes. Dersom det ikke er dekning på kontoen (en SavingsAccount kan ikke ha negativ balanse) skal et unntak av typen IllegalStateException kastes.
  • double getbalance() - returnerer kontobalansen.

I tillegg til å støtte Account-grensesnittet over, som er felles for alle kontoer, skal sparekontoer ha en rentefot og en metode som forretner kontoen. Denne vil banken kalle for hver sparekonto på slutten av året slik at alle dets kunder opptjener renter (ikke tenk på at banker egentlig holder styr på hvor stor balansen har vært gjennom hele året eller forrenter kontoen kontinuerlig - her skal vi bare anta at innestående kontobalanse ved årsslutt forrentes i sin helhet). I tillegg skal SavingsAccount-klassen ha en konstruktør som tvinger alle objekter av denne typen til å bli instansiert med et navn, en åpningsbalanse og en rentefot. Dette er oppsummert her:

dfdfd

  • SavingsAccount(String, double, double) - konstruktør som tar inn navn på kontoinnehaver, åpningsbalanse og rentefoten på kontoen og setter klassens felter i henhold til disse. Legg inn rentefoten som et desimaltall (f.eks. tilsvarer 0.05 en rente på 5%).

  • void accrueInterest() - dsfdsforrenter kontobalansen basert på rentefoten.

I din implementasjon av SavingsAccount, vær oppmerksom på at du i Del 2 og 3 skal lage subklasser av denne klassen og at ved å bruke rett innkapsling (hintprotected-modifikatoren) kan en la subklasser nyttiggjøre seg superklassen i størst mulig grad. 

Del 2 - BSU extends SavingsAccount

...

  • BSU(String, double, double, double) - konstruktør som tar inn navn på kontoinnehaver, åpningsbalanse og rentefoten på kontoen i tillegg til et desimaltall som angir hvor mye det er tillatt å sette inn på kontoen per år og setter klassens felter i henhold til disse.

Merk at målet er å la subklassenesubklassen gjenbruke mest mulig kode i superklassen. Det er viktig å bruke innkapsling rett (hintprotected-modifikatoren) for å nyttiggjøre seg superklassen i størst mulig grad.

Del 3 - ForeldreSpar extends SavingsAccount

...

  • ForeldreSpar(String, double, double, int) - konstruktør som tar inn navn på kontoinnehaver, åpningsbalanse og rentefoten på kontoen i tillegg til et heltall som angir antall lovlige uttak per år og setter klassens felter i henhold til disse.

Merk at målet er å la subklassenesubklassen gjenbruke mest mulig kode i superklassen. Det er viktig å bruke innkapsling rett (hintprotected-modifikatoren) for å nyttiggjøre seg superklassen i størst mulig grad.

Include Page
Bunntekst for JExercise-oppgaver
Bunntekst for JExercise-oppgaver