2023-12-19 13:57:55 +01:00
|
|
|
package bank;
|
|
|
|
|
2023-12-19 17:06:45 +01:00
|
|
|
import java.io.FileInputStream;
|
|
|
|
import java.io.FileNotFoundException;
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.ObjectInputStream;
|
|
|
|
import java.io.ObjectOutputStream;
|
|
|
|
import java.io.Serializable;
|
2023-12-19 13:57:55 +01:00
|
|
|
import java.util.ArrayList;
|
|
|
|
|
2023-12-19 17:06:45 +01:00
|
|
|
public class Bank implements Serializable {
|
2023-12-19 13:57:55 +01:00
|
|
|
private String name;
|
|
|
|
private ArrayList<Bankkonto> kontenliste;
|
|
|
|
|
|
|
|
public Bank(String name) {
|
|
|
|
this.kontenliste = new ArrayList<>();
|
|
|
|
this.name = name;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int kontoAnlegen(String inhaber) {
|
|
|
|
Bankkonto bk = new Bankkonto(inhaber);
|
|
|
|
kontenliste.add(bk);
|
|
|
|
|
|
|
|
// Speichern Methode 2: geänderte Daten speichern
|
2023-12-19 17:06:45 +01:00
|
|
|
saveBankData(); // bzw. der Einfachheit halber: alle Daten ;-)
|
|
|
|
|
2023-12-19 13:57:55 +01:00
|
|
|
return bk.getKontonummer();
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getName() {
|
|
|
|
return this.name;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean geldEinzahlen(int kontonummer, double betrag) {
|
|
|
|
Bankkonto bk = kontoFinden(kontonummer);
|
|
|
|
|
|
|
|
if (bk != null) {
|
|
|
|
bk.geldEinzahlen(betrag);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
private Bankkonto kontoFinden(int kontonummer) {
|
|
|
|
for (Bankkonto bk : kontenliste) {
|
|
|
|
if (bk.getKontonummer() == kontonummer)
|
|
|
|
return bk;
|
|
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2023-12-19 17:06:45 +01:00
|
|
|
// Die folgenden Persistenz-Methoden würde man in der Praxis in eine eigene
|
|
|
|
// Klasse auslagern.
|
|
|
|
private void saveBankData() {
|
|
|
|
ObjectOutputStream oos;
|
|
|
|
try {
|
|
|
|
oos = new ObjectOutputStream(new FileOutputStream("BankData.ser"));
|
|
|
|
oos.writeObject(this);
|
|
|
|
oos.close();
|
|
|
|
} catch (FileNotFoundException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
} catch (IOException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public static Bank loadBankData() {
|
|
|
|
try {
|
|
|
|
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("BankData.ser"));
|
|
|
|
return (Bank) ois.readObject();
|
|
|
|
} catch (IOException | ClassNotFoundException e) {
|
|
|
|
System.err.println("Keine Daten gespeichert, initialisiere alle Daten neu.");
|
|
|
|
}
|
|
|
|
|
|
|
|
return new Bank("Spaßkasse");
|
|
|
|
}
|
|
|
|
|
2023-12-19 13:57:55 +01:00
|
|
|
}
|