diff --git a/src/Bank.java b/src/Bank.java new file mode 100644 index 0000000..c7648e9 --- /dev/null +++ b/src/Bank.java @@ -0,0 +1,28 @@ +import java.util.ArrayList; + +public class Bank { + + ArrayList konten = new ArrayList<>(); + + public static void main(String[] args) { + ArrayList konten = new ArrayList<>(); + konten.add(new Bankkonto("Jolly Jumper", 20000.0)); + konten.get(0).einzahlen(20000); + konten.get(0).beziehen(10000); + + konten.add(new Salaerkonto("Donald Duck", 5000.0, -1500.0)); + konten.get(1).beziehen(100000); + konten.get(1).einzahlen(3000); + + + konten.add(new Nummernkonto("Unbekannt", 100000.0)); + konten.get(2).beziehen(10); + konten.get(2).einzahlen(10000); + + + + for(Bankkonto konto : konten){ + System.out.println(konto); + } + } +} diff --git a/src/Bankkonto.java b/src/Bankkonto.java new file mode 100644 index 0000000..2eb0b37 --- /dev/null +++ b/src/Bankkonto.java @@ -0,0 +1,66 @@ +public class Bankkonto { + + private String inhaber; + private double kontostand = 0; + private double maxKontostand = 100000; + protected double minKontostand = 0; + + public Bankkonto(String inhaber){ + setInhaber(inhaber); + } + + public Bankkonto(String inhaber, double eroeffnungsbestand){ + setKontostand(eroeffnungsbestand); + setInhaber(inhaber); + } + + public String getInhaber() { + return inhaber; + } + + public double getKontostand() { + return kontostand; + } + + public boolean setInhaber(String inhaber) { + if(inhaber.length() > 2) { + this.inhaber = inhaber; + return true; + } + return false; + } + + public boolean setKontostand(double kontostand) { + if(kontostand > maxKontostand) { + this.kontostand = maxKontostand; + return false; + } + else if(kontostand < minKontostand){ + this.kontostand = minKontostand; + return false; + } + else{ + this.kontostand = kontostand; + return true; + } + } + + public boolean einzahlen(double betrag){ + if(setKontostand(kontostand + betrag)){ + return true; + } + return false; + } + + public boolean beziehen(double betrag){ + if(setKontostand(kontostand - betrag)){ + return true; + } + return false; + } + + @Override + public String toString() { + return "Inhaber: " + getInhaber() + ", Kontostand: " + kontostand; + } +} diff --git a/src/Nummernkonto.java b/src/Nummernkonto.java new file mode 100644 index 0000000..2765939 --- /dev/null +++ b/src/Nummernkonto.java @@ -0,0 +1,26 @@ +public class Nummernkonto extends Bankkonto{ + + private double ueberzugslimite; + private int nummer; + private static int naechsteNummer = 1000; + + public Nummernkonto(String inhaber, double eroeffnungsbestand){ + super(inhaber, eroeffnungsbestand); + setNummer(); + } + + public Nummernkonto(String inhaber){ + super(inhaber); + setNummer(); + } + + private void setNummer(){ + nummer = naechsteNummer; + naechsteNummer ++; + } + + @Override + public String getInhaber(){ + return "" + nummer; + } +} diff --git a/src/Salaerkonto.java b/src/Salaerkonto.java new file mode 100644 index 0000000..d350250 --- /dev/null +++ b/src/Salaerkonto.java @@ -0,0 +1,34 @@ +public class Salaerkonto extends Bankkonto{ + + private double absolutMinKontostand = -10000; + + public Salaerkonto(String inhaber, double bezugslimite, double eroeffnungsbestand){ + super(inhaber); + setMinKontostand(0 - bezugslimite); + super.setKontostand(eroeffnungsbestand); + } + + public Salaerkonto(String inhaber, double bezugslimite){ + super(inhaber); + setMinKontostand(0 - bezugslimite); + } + + public double getUeberzugslimite(){ + return 0 - minKontostand; + } + + private boolean setMinKontostand(double minKontostand){ + if(minKontostand < absolutMinKontostand){ + super.minKontostand = absolutMinKontostand; + return false; + } else { + super.minKontostand = minKontostand; + return true; + } + } + + @Override + public String toString() { + return super.toString() + ", Ueberzugslimite: " + getUeberzugslimite(); + } +}