26. februar 2003 - 20:14Der er
16 kommentarer og 2 løsninger
hvordan laver man en metode der tilskriver 5% rente til en konto?
Hej eksperter, jeg skal udvide klassen Ungdomskonto, så den får en metode, der tilskriver 5% i studiebonus, hvis saldoen er over et vist grundbeløb. Hvad gør jeg galt? /** * Write a description of class Ungdomskonto here. * * @author Trine * @version 26.02.03 */ public class Ungdomskonto extends Konto{
private long grundbeløb;
public Ungdomskonto(String navn, long grund){ super(navn); grundbeløb = grund; }
public boolean hæv(long beløb){ // put your code here if (super.saldoen() < 0)return false; if (super.saldoen() == 100)return super.hæv(beløb); if (beløb > (super.saldoen()/ 2))return false; return super.hæv(beløb); }
public long getBonus(){ return grundbeløb; } public boolean rente(){ if(super.saldoen() > getbonus()){ long bonus = (long)(super.saldoen() * 0.05); return super.indsæt(bonus); } else return false;
public static void main(String[] args) { boolean ok; kassekredit = new Kassekredit("Hans Petersen", 100000); pensionskonto = new Pensionskonto("Birte Petersen", 50000); ungdomskonto = new Ungdomskonto("Martin Fisher", 1000);
tjek("initialisering"); ok = kassekredit.indsæt(12000); tjek(ok, "indsætte 12000 på kassekredit"); ok = kassekredit.hæv(115000); tjek(ok, "hæve 115000 på kassekredit"); ok = pensionskonto.hæv(115000); tjek(ok, "hæve 15000 på pensionskonto"); ok = pensionskonto.indsæt(51000); tjek(ok, "indsætte 51000 på pensionskonto"); ok = ungdomskonto.indsæt(500); tjek(ok,"indsætte 500 på ungdomskonto"); ok = ungdomskonto.hæv (250); tjek(ok, "hæve 250 på ungdomskonto"); ok = ungdomskonto.hæv (100); tjek(ok, "hæve 100 på ungdomskonto"); ok = ungdomskonto.indsæt (1100); tjek(ok, "indsætte 1100 på ungdomskonto"); }
public static void main(String[] args) { boolean ok; kassekredit = new Kassekredit("Hans Petersen", 100000); pensionskonto = new Pensionskonto("Birte Petersen", 50000); ungdomskonto = new Ungdomskonto("Martin Fisher", 1000);
tjek("initialisering"); ok = kassekredit.indsæt(12000); tjek(ok, "indsætte 12000 på kassekredit"); ok = kassekredit.hæv(115000); tjek(ok, "hæve 115000 på kassekredit"); ok = pensionskonto.hæv(115000); tjek(ok, "hæve 15000 på pensionskonto"); ok = pensionskonto.indsæt(51000); tjek(ok, "indsætte 51000 på pensionskonto"); ok = ungdomskonto.indsæt(500); tjek(ok,"indsætte 500 på ungdomskonto"); ok = ungdomskonto.hæv (250); tjek(ok, "hæve 250 på ungdomskonto"); ok = ungdomskonto.hæv (100); tjek(ok, "hæve 100 på ungdomskonto"); ok = ungdomskonto.indsæt (1100); tjek(ok, "indsætte 1100 på ungdomskonto"); ok = ungdomskonto.rente(); tjek(ok, "rente beregning"); }
private long grund; private boolean hasCashedBonus = false;
public Ungdomskonto(String navn, long grund){ super(navn); this.grund = grund; }
public getGrund() { return grund; } public setGrund(long grund) { this.grund = grund; }
public void indsæt(long value) { super.indsæt(long value); if (!hasCashedBonus&&(saldoen()>getGrund())) { // vor studieven har ikke fået gryn endnu // og hun har kontanter nok super.indsæt(saldoen()*0.05d); hasCashedBonus = true; } } }
løser det ikke problemet? Denne vil opføre sig som Konto, men blot indsætte 5% af kontoen første gang saldoen er over grund.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.