Hallo zusammen
Ich habe folgendes Problem: Ich habe in bluej eine Klasse "Konto" programmiert, die neben anderen Parametern natürlich auch einen Kontostand hat. Die Aufgabe ist es nun, mit einer separaten Klasse "Ueberweisung", Überweisungen von einem Konto-Objekt (ausgangskonto) Geld auf ein anderes Konto-Objekt (empfaengerkonto) zu transferieren. Wo ich aber anstehe, ist, dass ich keine Ahnung habe wie ich von der Klasse "Ueberweisung" auf den Kontostand der Objekte der Klasse "Konto" zugreifen kann.
Weiss jemand Rat?
Der Code der Klasse "Konto" sieht wie folgt aus:
Der Code der Klasse "Ueberweisung" wie folgt:
Ich habe folgendes Problem: Ich habe in bluej eine Klasse "Konto" programmiert, die neben anderen Parametern natürlich auch einen Kontostand hat. Die Aufgabe ist es nun, mit einer separaten Klasse "Ueberweisung", Überweisungen von einem Konto-Objekt (ausgangskonto) Geld auf ein anderes Konto-Objekt (empfaengerkonto) zu transferieren. Wo ich aber anstehe, ist, dass ich keine Ahnung habe wie ich von der Klasse "Ueberweisung" auf den Kontostand der Objekte der Klasse "Konto" zugreifen kann.
Weiss jemand Rat?
Der Code der Klasse "Konto" sieht wie folgt aus:
Java:
public class Konto
{
// Der Vorname des Kontoinhabers.
private String vorname;
// Der Nachname des Kontoinhabers.
private String nachname;
//Die Kontonummer des Kontoinhabers.
private int kontonummer;
//Die Strasse und Hausnummer des Kontoinhabers.
private String adresse;
//Der Wohnort des Kontoinhabers.
private String ort;
//Die Postleitzahl des Kontoinhabers. String, damit die PLZ auch problemlos mit 0 beginnen kann.
private String plz;
//Das Land des Kontoinhabers.
private String land;
//Der Betrag, der sich noch auf dem Konto befindet. "double" damit der Kontostand mit zwei Dezimailstellen
//implementiert werden kann.
public double kontostand;
//Die PIN, die der Kunde bei Kontoeröffnung wählen kann.
private int geheimnummer;
//Das Kreditlimit wird hier bereits eingeführt, da es in mehreren Methoden Verwendung findet.
private int kreditlimit;
/**
* Erzeuge ein Konto, das Auskunft über den Inhaber und den Kontostand gibt. Alle Variabeln ausser
* dem Kontostand kann man bei Erzeugung eines neuen Kontos eingeben.
*/
public Konto(String Vorname, String Nachname, int Kontonummer,
String Adresse, String Ort, String PLZ, String Land, int Geheimnummer)
{
vorname = Vorname;
nachname = Nachname;
kontonummer = Kontonummer;
adresse = Adresse;
ort = Ort;
plz = PLZ;
land = Land;
kontostand = 0.00;
geheimnummer = Geheimnummer;
kreditlimit = 0;
}
/**
* Über die Methode "geheimnummerAendern" kann die Geheimnummer geändert werden.
* Dabei wird überprüft, ob die alte Geheimnummer stimmt, falls nicht kommt eine Meldung.
* Falls sie stimmt, wird die Geheimnummer in die neue Geheimnummer geändert.
*/
public void geheimnummerAendern (int alteGeheimnummer, int neueGeheimnummer)
{
if (alteGeheimnummer == geheimnummer) {
geheimnummer = neueGeheimnummer;
}
else {
System.out.println ("Bitte geben Sie die korrekte Geheimnummer ein.");
System.out.println();
}
}
/**
* Mit der Methode "setzeKreditlimit" ist es möglich ein Kreditlimit zu setzen, damit man das Konto
* nicht endlos überziehen kann. Die Methode verändert die Variable "kreditlimit", welche bereits
* generiert wurde.
*/
public void setzeKreditlimit (int Kreditlimit)
{
kreditlimit = Kreditlimit;
}
/**
* Mit der Methode "einzahlen" ist es möglich Geld auf das Konto einzuzahlen. Dies hat zur
* Folge, dass sich der Kontostand um den eingezahlten Betrag erhöht. Bei der Einzahlung wird
* überprüft, ob der einzuzahlende Betrag positiv ist oder nicht. Falls er positiv ist, kommt eine
* Fehlermeldung, andernfalls wird der Betrag gutgeschrieben.
*/
public void einzahlen (double betragEinzahlung)
{
if (betragEinzahlung > 0) {
kontostand = kontostand + betragEinzahlung;
}
else {
System.out.println("Bitte bezahlen Sie einen positiven Betrag ein");
System.out.println();
}
}
/**
* Mit der Methode "abheben" kann man Geld vom Konto abheben. Damit dies möglich ist, muss
* die korrekte Geheimnummer eingegeben werden und der neue Kontostand darf nicht unter die
* Kreditlimite fallen.
*
* Mit der wenn/dann Funktion wird geprüft, ob die PIN korrekt ist und der Betrag nicht die Kredit-
* limite überschreitet. Wenn beides nicht der Fall ist wird das Geld ausbezahlt. Falls eine der
* beiden Bedingungen nicht erfüllt ist, erscheint eine entsprechende Fehlermeldung.
*
*/
public void abheben (int PIN, double betragAuszahlung)
{
if ((PIN == geheimnummer) && (betragAuszahlung <= kontostand + kreditlimit)){
kontostand = kontostand - betragAuszahlung;
}
else {
if (PIN != geheimnummer) {
System.out.println("PIN falsch.");
System.out.println();
}
else {
if (betragAuszahlung > kontostand + kreditlimit){
System.out.println("Kreditlimit erschöpft");
System.out.println("maximaler Bezug " + (kontostand + kreditlimit) + " CHF");
System.out.println();
}
}
}
}
/**
* Die Methode "kontoInfosAusgeben" ermöglicht es, alle relevanten Informationen in der Konsole
* anzuzeigen. Die funktioniert mit der System.out.println Funktion.
*/
public void kontoInfosAusgeben()
{
System.out.println("#############################");
System.out.println("Kontoinhaber:");
System.out.println(nachname +", " + vorname);
System.out.println(adresse);
System.out.println(plz + " " + ort);
System.out.println(land);
System.out.println();
System.out.println("Kontonummer: " + kontonummer);
System.out.println();
System.out.println("Kontostand: " + kontostand);
System.out.println("Kreditlimit: " + kreditlimit);
System.out.println("Geheimnummer: " + geheimnummer);
System.out.println("#############################");
System.out.println();
}
}
Der Code der Klasse "Ueberweisung" wie folgt:
Java:
import java.util.ArrayList;
public class Ueberweisung
{
private ArrayList kontoliste;
public Ueberweisung()
{
kontoliste = new ArrayList();
}
public void hinzufuegenKonto(Konto neu)
{
kontoliste.add(neu);
}