Hmm... also irgendwie komme ich nicht klar damit.
Den BankTest habe ich relativ schnell hinbekommen, aber das mit dem Transakktionsarray will irgendwie nicht klappen. Wahrscheinlich fehlt mir da das Verständnis an sich was da passiert, bin halt ein anfänger.
Daher wäre es nett, wenn sich wer die Muse nehmen könnte und sich ein wenig damit vertraut macht.
Ich schreibe einfach mal drauflos und fange ganz vorne bei der Main.java an.
* Ein neues Bank-Objekt wird erstellt.
* Die Bank erhält neue Konten.
-> Ein Konto-Objekt beinhaltet den Namen der Bank und die Kontonummer.
* Für b wird barEinzahlen(int nr, double betrag) aufgerufen, die ist in Bank.java und besorgt sich die Kontonummer. In Konto.java gehts mit barEinzahlen(double betrag) weiter. Und nun eine Frage. Dort steht:
void barEinzahlen(double betrag) {
pruefeObBetragPositiv(betrag);
kontostand += betrag;
transaktionen.speichere(Transaktion.barEingezahlt(betrag));
}
(Transaktion.barEingezahlt(betrag)) bedeutet, dass ein Transaktionsobjekt erstellt wird und der Methode speichere übergeben wird. Wofür steht denn jetzt vor "speichere" das "transaktionen"? Ist das eine Klassenvariable? Es stammt ja aus der Klasse Konto.java und ist deklariert als:
/**
* Array aller Kontobewegungen.
*/
private Transaktionsarray transaktionen = new Transaktionsarray();
Nun wird hier auch ein Objekt erstellt.
Dieser Aufruf sucht doch dann in der Klasse Transaktionsarray nach eine Konstruktor, richtig? Der fehlt und dort müsste dann ein Array erstellt werden, in dem die Transaktionen gespeichert werden. Das sieht bei mir so aus:
private int anz;
private Transaktionsarray[] transakt;
/**
* Konstruktor, der fuer jedes Konto ein Array anlegt.
*/
public Transaktionsarray(){
/* Für jedes Konto-Objekt wird ein Transaktionsarray angelegt.
* ein Objekt vom Typ Transaktionsarray
*/
transakt = new Transaktionsarray[anzahl()];
anz=0;
}
Nach meinem Verständnis gibt es nun ein Array. Dort sollen nun die Transaktionen gespeichert werden. Also:
public void speichere(Transaktion transaktion) {
/* TODO: Ergaenzen */
transakt[anzahl()]=transaktion;
}
anzahl() -ebenfalls aus der Klasse- besorgt sich beim Konstruktoraufruf die Anzahl der Elemente.
/**
* Zaehlt die Anzahl an Transaktionen.
*
* @return anzahl
*/
public int anzahl() {
/* TODO: Ergaenzen */
return anz++;
}
Nochmal zum "speichere". Dort steht transakt[anzahl()]=transaktion;
Hierbei sagt Eclipse, dass "cannot convert from Transaktion to Transaktionsarray". Ein Cast erlaubt es aber auch nicht, der bei mir so aussah.
transakt[anzahl()]=(Transaktionsarray)transaktion;
Hoffe mir kann geholfen werden und bedanke mich schon einmal für die Mühe.
Viele Grüße,
dicra
Anhang: Mein aktueller Stand... src.zip