net.gobbz.kontoverwaltung
Class Sparkonto

java.lang.Object
  extended by net.gobbz.kontoverwaltung.Konto
      extended by net.gobbz.kontoverwaltung.Sparkonto

public class Sparkonto
extends Konto

Ein Sparkonto hat keinen Überziehungsrahmen, dafür aber eine Sparrate und darf keine negativen Kontostände aufweisen. Bei jedem Sparkonto kann eine individuelle Sparrate eingestellt werden, welche durch eine eigene Operation (buchenSparrate) zum Kontostand dazugebucht wird. Es kann nur unter Berücksichtigung bestimmter Bedingungen vom Sparkonto abgebucht werden


Field Summary
protected  double sparrate
          Die für jedes Sparkonto festlegbare Sparrate
 
Fields inherited from class net.gobbz.kontoverwaltung.Konto
kontonummer, kontostand, naechsteKontonummer, startzinssatz, zinssatz
 
Constructor Summary
Sparkonto(double ersteZahlung, double sparrate)
          Ein Sparkonto wird erstellt und die erste Zahlung wird auf das Sparkonto gebucht.
 
Method Summary
 void buchen(double betrag)
          Bucht den übergebenen Betrag zum Sparkonto dazu bzw. vom Sparkonto ab.
 void buchenSparrate()
          Die für das Sparkonto eingestellte Sparrate wird gebucht.
 double getSparrate()
          Liefert die für das Sparkonto eingestellte Sparrate zurück
 double getSpesen()
          Die Spesen des Sparkontos belaufen sich auf 0.1% des aktuellen Kontostandes
 double getZinsen()
          Rechnet vom aktuellen Kontostand die Jahreszinsen aus, also jene Zinsen die für ein gesamtes Jahr anfallen
 void setSparrate(double sparrate)
          Setzt die Sparrate für das Konto.
 java.lang.String toString()
          Ausgabe der Sparkontodaten.
 
Methods inherited from class net.gobbz.kontoverwaltung.Konto
getKontoNummer, getKontostand, getStartzinssatz, getZinssatz, setStartzinssatz, setZinssatz, ueberweisen
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

sparrate

protected double sparrate
Die für jedes Sparkonto festlegbare Sparrate

Constructor Detail

Sparkonto

public Sparkonto(double ersteZahlung,
                 double sparrate)
          throws KontoException
Ein Sparkonto wird erstellt und die erste Zahlung wird auf das Sparkonto gebucht. Dabei ist zu berücksichtigen, dass die erste Zahlung größer als 0 sein muss. Ist dies nicht der Fall, so darf das Sparkonto nicht angelegt werden. Weiter wird dem Konstruktor die Höhe der Sparrate übergeben. Auch diese muss größer als 0 sein. In beiden Fällen muss ein KontoException geworfen werden und eine bereits für das Sparkonto reservierte Kontonummer muss wiederum freigegeben werden.

Parameters:
ersteZahlung - stellt den Betrag dar, welcher beim Anlegen des Sparkontos auf das Konto gebucht werden soll
sparrate - legt fest wie hoch die Sparrate des Kontos sein soll
Throws:
KontoException - wird ausgelöst, wenn die Erste Zahlung oder die Sparrate nicht größer als 0 sind
Method Detail

setSparrate

public void setSparrate(double sparrate)
                 throws KontoException
Setzt die Sparrate für das Konto. Die zu setzende Sparrate darf nicht kleiner oder gleich 0 sein

Parameters:
sparrate - die zu setzende Sparrate
Throws:
KontoException - wenn die zu setzende Sparrate kleiner oder gleich 0 ist

getSparrate

public double getSparrate()
Liefert die für das Sparkonto eingestellte Sparrate zurück

Returns:
die eingestellte Sparrate

getZinsen

public double getZinsen()
Rechnet vom aktuellen Kontostand die Jahreszinsen aus, also jene Zinsen die für ein gesamtes Jahr anfallen

Specified by:
getZinsen in class Konto
Returns:
die Jahreszinsen

getSpesen

public double getSpesen()
Die Spesen des Sparkontos belaufen sich auf 0.1% des aktuellen Kontostandes

Specified by:
getSpesen in class Konto
Returns:
die Spesen des Sparkontos

buchenSparrate

public void buchenSparrate()
Die für das Sparkonto eingestellte Sparrate wird gebucht. Dabei tritt kein KontoException auf weil die zu verbuchende Sparrate immer positiv ist


buchen

public void buchen(double betrag)
            throws KontoException
Bucht den übergebenen Betrag zum Sparkonto dazu bzw. vom Sparkonto ab. Dabei wird berücksichtig, dass der Kontostand nicht negativ sein darf. Weiters darf immer nur zum Sparkonto dazugebucht werden. Wird abgebucht, dann muss der Kontostand mit einer einzigen Buchung auf 0 zurückgesetzt werden. Abbuchungen von bis zu 3000 sind erlaubt. Dabei kann der Kontostand auch nicht bis auf 0 zurückgehen

Specified by:
buchen in class Konto
Parameters:
betrag - der zum Sparkonto dazugebucht bzw. abgebucht wird
Throws:
KontoException - wird ausgelöst, wenn beim Buchen obige Bedingungen nicht eingehalten werden

toString

public java.lang.String toString()
Ausgabe der Sparkontodaten. Es wird zusätzlich noch die Sparrate ausgegeben

Overrides:
toString in class Konto
Returns:
die Stringentsprechung des Kontos