From 9acea903216dbe371dd7b41cbf23b46a5732bcb4 Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Sun, 7 Dec 2014 19:15:58 +0100 Subject: Refactored the packagenames fo better sorting --- src/de/fhswf/in/inf/java1/aufgabe05/Konto.java | 119 +++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 src/de/fhswf/in/inf/java1/aufgabe05/Konto.java (limited to 'src/de/fhswf/in/inf/java1/aufgabe05/Konto.java') diff --git a/src/de/fhswf/in/inf/java1/aufgabe05/Konto.java b/src/de/fhswf/in/inf/java1/aufgabe05/Konto.java new file mode 100644 index 0000000..235f9af --- /dev/null +++ b/src/de/fhswf/in/inf/java1/aufgabe05/Konto.java @@ -0,0 +1,119 @@ +/** + * + */ +package de.fhswf.in.inf.java1.aufgabe05; + +import java.math.BigDecimal; + +/** + * An implementation of the Konto class which represents a bank account. + * + * @author $Author: $ + * @version $Revision: $, $Date: $ UTC + */ +public class Konto +{ + + private BigDecimal guthaben; + + private BigDecimal dispo; + + private Person besitzer; + + /** + * Creates an account with an owner, a dispo and an initial balance. + * + * @param besitzer + * Owner of the account + * @param dispo + * Dispo of the account + */ + public Konto(Person besitzer, BigDecimal dispo) + { + + if (besitzer == null) + { + throw new IllegalArgumentException("Besitzer can't be null"); + } + if (dispo == null) + { + throw new IllegalArgumentException("Dispo can't be null"); + } + if (dispo.compareTo(BigDecimal.ZERO) < 0) + { + throw new IllegalArgumentException("Dispo can't be negative"); + } + + this.besitzer = besitzer; + this.dispo = dispo; + this.guthaben = new BigDecimal(0); + + this.besitzer.addKonto(this); + + } + + /** + * Function for withdrawing money from the account. + * + * @param betrag + * Amount of cash to be withdrawn + */ + public void abheben(BigDecimal betrag) + { + if (betrag == null) + { + throw new IllegalArgumentException("Betrag can't be null"); + } + if (betrag.compareTo(BigDecimal.ZERO) < 0) + { + throw new IllegalArgumentException("Betrag can't be negative"); + } + if (guthaben.add(dispo).compareTo(betrag) < 0) + { + throw new IllegalArgumentException("Betrag surpasses dispo limit"); + } + + guthaben = guthaben.subtract(betrag); + } + + /** + * Function to deposit money into the account. + * + * @param betrag + * Amount of cash to be disposed + */ + public void einzahlen(BigDecimal betrag) + { + if (betrag == null) + { + throw new IllegalArgumentException("Betrag can't be null"); + } + if (betrag.compareTo(BigDecimal.ZERO) < 0) + { + throw new IllegalArgumentException("Betrag can't be negative"); + } + + guthaben = guthaben.add(betrag); + } + + /** + * Returns the actual balance. + * + * @return Returns the actual balance. + */ + public BigDecimal getKontostand() + { + return guthaben; + } + + /** + * Just to get the owners name. + * + * @return Returns the owners name. + */ + public Person getBesitzer() + { + return besitzer; + } + +} -- cgit v1.2.3-70-g09d2