# Girokonto



## RedHawk123 (12. Jan 2018)

Hi, 
wir arbeiten zur Zeit an Listen bzw Linked und ArrayListen. 
Unsere Aufgabe ist folgendes: "Ändert die Klasse Girokonto so ab, dass sie intern ihre Kontobewegungen in einer Liste verwaltet. Benutzt
hierzu Exemplare der Klasse Kontobewegung und speichert sie in einer List."

```
class Girokonto
{
    // der ganzzahlige Saldo
    private int _saldo;

    // das Dispolimit
    private int _dispoLimit;
   
    private List<Kontobewegung> _kontobewegungen;

    /**
     * Ein neues Konto hat einen Anfangssaldo und ein Dispo-Limit von 0.
     */
    public Girokonto()
    {
        _kontobewegungen = new ArrayList<Kontobewegung>();
        _saldo = 0;
        _dispoLimit = 0;
    }

    public void druckeKontobewgung()
    {
        System.out.println(_kontobewegungen);
    }
   
    /**
     * Liefert das Dispo-Limit dieses Kontos.
     *
     * @return das Dispo-Limit
     */
    public int gibDispoLimit()
    {
        return _dispoLimit;
    }

    /**
     * Setze das Dispo-Limit auf den gegebenen Wert.
     *
     * @param dispoLimit ein nicht-negativer Wert als neues Dispo-Limit
     */
    public void setzeDispoLimit(int dispoLimit)
    {
        if (dispoLimit < 0)
        {
            throw new IllegalArgumentException("Fehler: das Limit muss positiv sein.");
        }
        _dispoLimit = dispoLimit;
    }

    /**
     * Zahlt einen Betrag auf das Konto ein.
     *
     * @param betrag
     *            der einzuzahlende Betrag
     */
    public void zahleEin(int betrag)
    {
        if (betrag <= 0)
        {
            throw new IllegalArgumentException("Fehler: der Betrag muss positiv sein.");
        }
        _saldo = _saldo + betrag;
      
    }

    /**
     * Hebt einen Betrag vom Konto ab.
     *
     * @param betrag
     *            der abzuhebende Betrag
     */
    public void hebeAb(int betrag)
    {
        if (betrag <= 0)
        {
            throw new IllegalArgumentException("Fehler: der Betrag muss positiv sein.");
        }
        if ((_saldo - betrag) < -_dispoLimit)
        {
            throw new IllegalArgumentException("Fehler: Auszahlung nicht moeglich, Dispo-Limit wuerde ueberschritten.");
        }
        _saldo = _saldo - betrag;
    }

    /**
     * Liefert den Saldo des Kontos.
     *
     * @param das Saldo
     */
    public int gibSaldo()
    {
        return _saldo;
    }
}
```

Mein Ansatz war es eine ArrayList zu erzeugen mit Kontobewegung als Datentyp. Danach will ich die einzelnen Beträge mit der methode .add() hinzufügen zur Liste. Leider weiß ich nicht. Ob ich überhaupt die Aufgabe richtig verstanden habe und ob mein Ansatz überhaupt richtig ist. 
Kann mir da jemand dass verständlicher erklären und mir sagen was ich tun kann?

PS: So sieht der Konstruktor der Klasse Kontobewegung aus:

```
class Girokonto
{
    // der ganzzahlige Saldo
    private int _saldo;

    // das Dispolimit
    private int _dispoLimit;
   
    private List<Kontobewegung> _kontobewegungen; // hier hab ich das geändert

    /**
     * Ein neues Konto hat einen Anfangssaldo und ein Dispo-Limit von 0.
     */
    public Girokonto()
    {
        _kontobewegungen = new ArrayList<Kontobewegung>(); // das Erzeugen meiner Liste
        _saldo = 0;
        _dispoLimit = 0;
    }
```


----------

