Hi,
habe hier eine Übungsaufgabe und weiß überhaupt nicht wie ich die anpacken soll. Ich lese mir die ganze Zeit die Vorlesungsscripte durchm komme aber auf keinen grünen Zweig.
hier die Aufgabe:
Aufgabe 13: Kontoführung (60 Punkte)
Implementieren Sie folgende Klassen in einem Package banking mit den angegebenen Attributen und Methoden:
· Klasse Bank:
o Attribut kunden: Array vom Typ Kunde
o Attribut konten: Array vom Typ Konto
o Attribut name: Typ String
o Attribut blz: Typ int
o Methode: Kunde legeNeuenKundenAn(String name, String vorname)
Erzeugt ein neues Kunde-Objekt mit dem übergebenen Namen, legt es im Array kunden ab und gibt
anschließend den neuen Kunden zurück.
o Methode Konto erstelleNeuesKonto(Kunde kunde)
Erzeugt ein neues Konto-Objekt für den übergebenen Kunden als Kontoinhaber, legt das Konto im Array
konten ab und gibt das neue Konto zurück.
o Klassenattribut naechsteKundenNummer: Typ int
Dieses Klassenattribut dient als Zähler für die Kunden, die mittels der Methode
legeNeuenKundenAn() erzeugt werden, um eine eindeutige Kundennummer vergeben zu
können. Initialer Wert: 1.
o Klassenattribut naechsteKontoNummer: Typ int
Analog zu vorigem Attribut, jedoch für Konten anstatt Kunden.
· Klasse Konto:
o Attribut inhaber: Typ Kunde
o Attribut bank: Typ Bank
o Attribut kontonummer: Typ int
o Attribut kontostand: Typ double
o Attribut transaktionen: Array vom Typ Transaktion
o Methode: void zahleEin(Einzahlung einzahlung)
Nimmt die übergebene Einzahlung entgegen, verändert den Kontostand entsprechend und speichert
die Transaktion im Array der Transaktionen an der ersten unbenutzten Stelle.
o Methode: Auszahlung zahleAus(double betrag)
Sofern das Konto über ausreichend Deckung verfügt, wird die Auszahlung mit dem gewünschten Betrag
ausgeführt, andernfalls über den entsprechend geringeren Betrag. Erzeugt wird außerdem ein
Auszahlung-Objekt (über den tatsächlich ausgezahlten Betrag), in den Transaktionen gespeichert
und zurückgegeben. Ist das Konto leer, bleiben die Transaktionen unverändert und die Methode gibt
null zurück.
o Methode: boolean ueberweise(Ueberweisung ueberweisung)
Sofern das Konto über ausreichend Deckung verfügt, wird die übergebene Überweisung ausgeführt, das
Ueberweisung-Objekt in den Transaktionen gespeichert und true zurückgeliefert. Andernfalls wird
die Überweisung nicht ausgeführt und false zurückgeliefert. (Hinweis: Die Überweisung soll nicht in
den Transaktionen des Empfängers auftauchen.)
o Methode: String generiereKontoAuszug()
Erzeugt einen String mit einer textuellen Repräsentation der letzten 5 Transaktionen. Für jede
Transaktion sollen das Datum und der Wert in einer eigenen Zeile aufgenommen werden.
· Klasse Kunde:
o Attribut name: Typ String
o Attribut vorname: Typ String
o Attribut kundenNummer: Typ int
o Attribut strasse: Typ String
o Attribut ort: Typ String
o Attribut plz: Typ int
· Abstrakte Klasse Transaktion:
o Attribut wert: Typ double
o Attribut datum: Typ String
· Klasse Einzahlung, abgeleitet von Transaktion:
o Attribut einzahlerName: Typ String
· Klasse Auszahlung, abgeleitet von Transaktion.
· Klasse Ueberweisung, abgeleitet von Transaktion:
o Attribut empfaenger: Typ Konto
o Attribut zweck: Typ String
Erzeugen Sie für jede Klasse außerdem einen Konstruktor, der die unterstrichenen Attribute initialisiert, Getter-
Methoden für alle Membervariablen und Setter-Methoden für die nicht unterstrichenen. Arrays besitzen eine initiale
Größe von 5 und werden dynamisch auf das doppelte ihrer aktuellen Größe erweitert, wenn kein Platz mehr im Array
vorhanden ist. Neue Elemente werden an der ersten unbenutzten Position im Array gespeichert.
Deklarieren Sie alle Membervariablen als private, alle Methoden als public.
Definieren Sie eine main-Methode in der Klasse Bank, die 3 Kunden und Konten bei 2 Banken erzeugt. Führen Sie 2
Transaktionen jeder Art durch.
Hinweise:
1. Besitzt der Konstruktor der Oberklasse Parameter, so muss dieser explizit mittels super(…) und passenden
Argumenten aufgerufen werden.
2. Um einen String zu erhalten, der das aktuelle Datum beinhaltet, können Sie folgenden Ausdruck benutzen:
String datum = java.text.DateFormat.getDateInstance().format(new Date());
Ich habe erstmal alle Klassen erstellt mit den dazugehörigen Attributen.
Was ist damit gemeint: Attribut kunden: Array vom Typ Kunde ?
Ich verstehe das so, dass kunden ein array ist, indem alle neuen Kunden abgelegt werden. Wie erzeuge ich das array? ich habe jetzt das dastehn: "private Kunde[] kunden;" ist das richtig?
Dann habe ich mir von Eclipse jeweils die Konstruktoren zu den Klassen erstellen lassen (geht das? bzw. ist das immer richtig?)
Nun versuche ich die Klassen zu schreiben und hänge bei der ersten legeNeuenKundenAn. Ich soll ja das Array "kunden" erstmal mit der Göße 5 erstellen. wie mache ich das? Ich glaube es hängt bhei mir beim Attribut "kunden" (siehe oben).
Ich erwarte/will keine lösung der Aufgabe, sondern ein paar Tipps und Antworten auf meine Fragen.
Dankeschön