Girokonto (als sub Klasse) hinzugefügt - Programm benutzt es noch nicht

Florian Hörner 2024-01-16 14:20:45 +01:00
parent e6f5703d8c
commit 8c34d538f0
4 changed files with 69 additions and 4 deletions

View File

@ -40,12 +40,12 @@ public class Bank implements Serializable {
if (bk.getKontonummer() == kontonummer) if (bk.getKontonummer() == kontonummer)
return bk; return bk;
} }
return null; return null;
} }
//public ArrayList<Bankkonto> getKontenListe() { //public ArrayList<Bankkonto> getKontenListe() {
public String[] getKontenListe() { public String[] getKontenListe() {
//kontendaten ist ein sog. DTO = Data Transfer Object
String kontendaten[] = new String[kontenliste.size()]; String kontendaten[] = new String[kontenliste.size()];
for (int i = 0; i < kontendaten.length; i++) { for (int i = 0; i < kontendaten.length; i++) {
@ -55,6 +55,14 @@ public class Bank implements Serializable {
return kontendaten; return kontendaten;
} }
public String getBetrag(int kontonummer) {
Bankkonto bk = kontoFinden(kontonummer);
if (bk != null) {
return ""+bk.getKontostand();
}
return "Fehler bei Kontonummer eingabe";
}
@Override @Override
public String toString() { public String toString() {
return "Bank{" + return "Bank{" +
@ -62,4 +70,14 @@ public class Bank implements Serializable {
", kontenliste=" + kontenliste + ", kontenliste=" + kontenliste +
'}'; '}';
} }
public boolean geldAuszahlen(int kontonummer, double betrag) {
Bankkonto bk = kontoFinden(kontonummer);
if (bk != null) {
return bk.geldAuszahlen(betrag);
}
return false;
}
} }

View File

@ -22,6 +22,9 @@ public class BankUI {
System.out.println("Aufgabe auswählen:"); System.out.println("Aufgabe auswählen:");
System.out.println("1) Konto anlegen"); System.out.println("1) Konto anlegen");
System.out.println("2) Geld einzahlen"); System.out.println("2) Geld einzahlen");
System.out.println("3. Geld aiszahlen");
System.out.println("4. Konto Betrag anzeigen");
System.out.println("-");
System.out.println("8. Konten Liste anzeigen"); System.out.println("8. Konten Liste anzeigen");
System.out.println("9) Programm beenden"); System.out.println("9) Programm beenden");
@ -32,6 +35,8 @@ public class BankUI {
switch (eingabe) { switch (eingabe) {
case 1 -> kontoAnlegenScreen(); case 1 -> kontoAnlegenScreen();
case 2 -> geldEinzahlenScreen(); case 2 -> geldEinzahlenScreen();
case 3 -> geldAuszahlenScreen();
case 4 -> kontoBetraganzeigen();
case 8 -> kontenListeanzeigen(); case 8 -> kontenListeanzeigen();
case 9 -> aufWiedersehenScreen(); case 9 -> aufWiedersehenScreen();
} }
@ -40,6 +45,24 @@ public class BankUI {
} while(true); } while(true);
} }
private static void kontoBetraganzeigen() {
System.out.print("Bitte Kontonummer eingeben: ");
int kontonummer = kb.nextInt();
System.out.println("Sie haben "+bank.getBetrag(kontonummer)+"€ auf Ihrem Konto");
}
private static void geldAuszahlenScreen() {
System.out.print("Bitte Kontonummer eingeben: ");
int kontonummer = kb.nextInt();
System.out.print("Bitte Betrag eingeben: ");
double betrag = kb.nextDouble();
boolean erg = bank.geldAuszahlen(kontonummer, betrag);
System.out.println("Geld auszahlen " + (erg?"": "nicht ") + "erfolgreich.");
}
private static void kontenListeanzeigen() { private static void kontenListeanzeigen() {
System.out.println("Hier sind die Konten: "); System.out.println("Hier sind die Konten: ");

View File

@ -12,12 +12,13 @@ public class Bankkonto implements Serializable {
private double kontostand; private double kontostand;
private static int kontozähler = 0; private static int kontozähler = 0;
private static int kontostartzaehler = (int) (Math.random()*1000);
public Bankkonto(String name) { public Bankkonto(String name) {
this.name = name; this.name = name;
this.kontostand = 0; this.kontostand = 0;
this.kontonummer = 100000 + kontozähler++; this.kontonummer = kontostartzaehler + kontozähler++;
} }
// sog. Getter-Methoden // sog. Getter-Methoden
@ -39,8 +40,12 @@ public class Bankkonto implements Serializable {
// TODO // TODO
// Geld soll nur ausgezahlt werden, wenn das Konto // Geld soll nur ausgezahlt werden, wenn das Konto
// auch gedeckt ist // auch gedeckt ist
public double geldAuszahlen(double betrag) { public boolean geldAuszahlen(double betrag) {
return -1; if (kontostand >= betrag) {
kontostand -= betrag;
return true;
}
return false;
} }
// TODO // TODO

View File

@ -0,0 +1,19 @@
package bank;
public class Girokonto extends Bankkonto{
public Girokonto(String name) {
super(name);
}
public boolean überweisen(Bankkonto zielkonto, double betrag){
if (this.geldAuszahlen(betrag)) {
zielkonto.geldEinzahlen(betrag);
return true;
}
return false;
}
}