>
Schülerforum
Hallo zusammen
Leider komme ich mit einem Codeauschnitt in JAVA nicht vorwärts. Es handelt sich um das Salaerkonto, welches ich implementieren muss. Leider habe ich das Gefühl, die Logik könnte nicht stimmen. Könnt ihr mir helfen? Ausgangslage: Konto ist die Superklasse von Salaerkonto. Nun habe ich nur die Datenfelder sowie die Methoden der Superklasse und der Subklasse Salaerkonto aufgeführt. :( Die Aufgabenstellung: Das Salärkonto darf als einziges überzogen werden. Dazu hat es eine Überzugslimite, welche im Bereich 0 bis maximal CHF 10'000 liegt. Mein Vorgehen: Eine Bank bietet drei Arten von Konten an: normale Bankkonten, Salärkontoen und Nummernkonten Konto-Datenfelder(Vaterklasse): inhaber, kontostand sowie zwei konstante MAXBetrag = 100000 und MINBetrag = 0; Konto-Methoden: betragEinzahlen, betragAbheben, rappenZuFranken, frankenZuRappen, toString,getMaxamount, getMinamount Salaerkonto-Datenfelder: MAXUEBERZUG = 10000,MINUEBERZUG = 0;ueberzugsLimite Stimmt dieser Code überhaupt sowie meine Überlegung. Unten seht ihr noch einen Zahlenbeispiel zu diesem Code. private void setUeberzugslimite(double limite){ if(limite > MINUEBERZUG){ if(limite > MAXUEBERZUG){ ueberzugsLimite = frankenZuRappen(MAXUEBERZUG); }else{ ueberzugsLimite = frankenZuRappen(limite); } }else{ ueberzugsLimite = frankenZuRappen(MINUEBERZUG); } } @Override public void betragAbheben(double betrag){ if((getKontostand() - betrag) < getMinamount()){ if((getMinamount() - betrag) <= getMinamount() - MAXUEBERZUG){ setKontostand(getMinamount() - MAXUEBERZUG); }else{ if((getKontostand() - betrag) >= (getMinamount() - rappenZuFranken(ueberzugsLimite))){ setKontostand(getKontostand() - betrag); }else{ setKontostand(getMinamount() - rappenZuFranken(ueberzugsLimite)); } } }else{ setKontostand(getKontostand() - betrag); } } Zahlenbeispiel zur Methode betragAbheben. getKontostand = 1000 betrag = 100 getMinamount = 0 Maxiüberzug: 10000 if(1000 - 100 < 0) { if(0 - 100 <= 0 -10000){ setKontostand(0-10000); else{ if(1000 - 100 >= (0-0){ setKontostand(1000-100); -> 900 Stimmt meine Überlegung? Vielen Dank für eure Hilfe!! } |