Hallo zusammen!
Ich sehe mal wieder den Wald vor lauter Bäumen nicht...
Habe ein ganz einfaches, kleines, kurzes Programm indem es um Bankkunden und ihre Konten geht.
Das Programm soll nichts anderes machen als die Beziehung Kunde -> Konto zu symbolisieren.
So soll ich "Alle Konten eines Kunden" anzeigen können, sowie "alle Besitzer eines Kontos" (1-3).
Ich habe jetzt folgendes Programm geschrieben:
Dazu gehört noch die Klasse Kunde:
und die Klasse Konto:
Wenn ich das Programm jetzt ausführe und wähle im Menü 1 und dann P1 so werden mir dieselben Konten angezeigt als wenn ich 1 > P2 drücke.
Ich dachte eigentlich ich hätte die entsprechenden Konten an p1 übergeben, sodass ich keine Gefahr darin sah die Variable 'konten' (main.java ~ zeile 40) erneut wieder zu verwenden um andere konten an p2 zu übergeben.
Wo liegt der Fehler ?
(Ist bestimmt irgendwas total blödes aber ich sehe es grade einfach nicht...)
Danke schonmal!
Gruß
Ich sehe mal wieder den Wald vor lauter Bäumen nicht...
Habe ein ganz einfaches, kleines, kurzes Programm indem es um Bankkunden und ihre Konten geht.
Das Programm soll nichts anderes machen als die Beziehung Kunde -> Konto zu symbolisieren.
So soll ich "Alle Konten eines Kunden" anzeigen können, sowie "alle Besitzer eines Kontos" (1-3).
Ich habe jetzt folgendes Programm geschrieben:
Java:
package Bank;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
private static Konto[] konten = new Konto[20];
private static Kunde[] besitzer = new Kunde[20];
public static void main(String[] args) {
Kunde p1 = new Kunde();
p1.setName("Toni");
p1.setAdresse("Milchstraße 14");
Kunde p2 = new Kunde();
p2.setName("Lola");
p2.setAdresse("Blingstraße 3");
Kunde p3 = new Kunde();
p3.setName("Hugo");
p3.setAdresse("Straße 1");
Konto k1 = new Konto();
k1.setKontonummer(14235325);
Konto k2 = new Konto();
k2.setKontonummer(12543234);
Konto k11 = new Konto();
k11.setKontonummer(17634345);
Konto k22 = new Konto();
k22.setKontonummer(163423413);
konten[0] = k1;
konten[1] = k22;
p1.setKonten(konten);
konten[0] = k2;
konten[1] = k11;
p2.setKonten(konten);
konten[0] = k1;
konten[1] = k11;
p3.setKonten(konten);
/*---------------------*/
besitzer[0] = p1;
besitzer[1] = p3;
k1.setBesitzer(besitzer);
besitzer[0] = p2;
k2.setBesitzer(besitzer);
besitzer[0] = p2;
besitzer[1] = p3;
k11.setBesitzer(besitzer);
besitzer[0] = p1;
k22.setBesitzer(besitzer);
showmenue();
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
String zeile = null;
while (true)
{
try {
zeile = console.readLine();
} catch (IOException e) {
e.printStackTrace();
}
switch (zeile)
{
case "1": System.out.println("Kunde wählen (p1,p2,p3):");
break;
case "2": System.out.println("Konto wählen (k1,k2,k11,k22):");
break;
case "p1": System.out.println("Konten von Kunde p1: \n");
for (Konto i : p1.getKonten())
{
if (i != null)
{
System.out.println(i.getKontonummer());
}
else
{
try {
System.out.println("\n<Bitte Taste drücken>");
System.in.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
showmenue();
break;
case "p2": System.out.println("Konten von Kunde p2: \n");
for (Konto i : p2.getKonten())
{
if (i != null)
{
System.out.println(i.getKontonummer());
}
else
{
try {
System.out.println("\n<Bitte Taste drücken>");
System.in.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
showmenue();
break;
case "p3":
System.out.println("Konten von Kunde p3: \n");
for (Konto i : p3.getKonten()) {
if (i != null) {
System.out.println(i.getKontonummer());
} else {
try {
System.out.println("\n<Bitte Taste drücken>");
System.in.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
showmenue();
break;
case "k1": System.out.println("Besitzer von Konto k1: \n");
for (Kunde i : k1.getBesitzer())
{
if (i != null) {
System.out.println(i.getName());
} else {
try {
System.out.println("\n<Bitte Taste drücken>");
System.in.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
showmenue();
break;
case "k2": System.out.println("Konten von Konto k2: \n");
for (Kunde i : k2.getBesitzer())
{
if (i != null) {
System.out.println(i.getName());
} else {
try {
System.out.println("\n<Bitte Taste drücken>");
System.in.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
showmenue();
break;
case "k11": System.out.println("Konten von Konto k11: \n");
for (Kunde i : k11.getBesitzer())
{
if (i != null) {
System.out.println(i.getName());
} else {
try {
System.out.println("\n<Bitte Taste drücken>");
System.in.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
showmenue();
break;
case "k22": System.out.println("Konten von Konto k22: \n");
for (Kunde i : k22.getBesitzer())
{
if (i != null) {
System.out.println(i.getName());
} else {
try {
System.out.println("\n<Bitte Taste drücken>");
System.in.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
showmenue();
break;
default: showmenue();
break;
}
}
}
public static void showmenue()
{
System.out.println("Kontenverwaltung");
System.out.println("----------------\n");
System.out.println("Was möchten Sie tun?\n");
System.out.println("Alle Konten eines Kunden anzeigen (1)");
System.out.println("Alle Besitzer eines Kontos anzeigen (2)\n");
}
}
Dazu gehört noch die Klasse Kunde:
Java:
package Bank;
import java.util.ArrayList;
import java.util.Date;
import Bank.Kontobewegung;
/**
* Die Klasse Kunde. Eine Person wird durch eine Kontoeröffnung zu einem Kunden.
*/
public class Kunde extends Person {
/**
* Die Konten eines Kunden.
*/
private Konto[] konten = new Konto[20];
/**
* Der Name eines Kunden.
*/
private String name;
/**
* Die Adresse des Kunden.
*/
private String adresse;
/**
* Datum der ersten Kontoeröffnung.
*/
private Date kontoeröffnung;
public ArrayList<Kontobewegung> zwischen_dem_Kunden_und_seinem_Konto_gibt_es_Konto_Geld__bewegungen = new ArrayList<Kontobewegung>();
public Konto[] getKonten() {
return this.konten;
}
public void setKonten(Konto[] _konten) {
this.konten = _konten;
}
public String getName() {
return this.name;
}
public void setName(String _name) {
this.name = _name;
}
public String getAdresse() {
return this.adresse;
}
public void setAdresse(String _adresse) {
this.adresse = _adresse;
}
public Date getKontoeröffnung() {
return this.kontoeröffnung;
}
public void setKontoeröffnung(Date _kontoeröffnung) {
this.kontoeröffnung = _kontoeröffnung;
}
}
und die Klasse Konto:
Java:
package Bank;
import java.util.ArrayList;
import java.util.Date;
/**
* Klasse Konto. Symbolisiert das Konto eines Kunden.
*/
public class Konto {
/**
* Beinhaltet die Besitzer eines Kontos.
*/
private Kunde[] besitzer = new Kunde[20];
/**
* Der Kontostand eines Kontos.
*/
private double kontostand;
/**
* Der Habenzins eines Kontos.
*/
private double habenzins;
/**
* Die eindeutige Kontonummer eines Kontos.
*/
private int kontonummer;
/**
* Das Datum der letzten Zins-Gutschrift/Abbuchung.
*/
private Date letzte_Gutschrift_Abbuchung;
public ArrayList<Kontobewegung> zwischen_dem_Kunden_und_seinem_Konto_gibt_es_Konto_Geld__bewegungen = new ArrayList<Kontobewegung>();
public Kunde[] getBesitzer() {
return this.besitzer;
}
public void setBesitzer(Kunde[] _besitzer) {
this.besitzer = _besitzer;
}
public double getKontostand() {
return this.kontostand;
}
public void setKontostand(double _kontostand) {
this.kontostand = _kontostand;
}
public double getHabenzins() {
return this.habenzins;
}
public void setHabenzins(double _habenzins) {
this.habenzins = _habenzins;
}
public int getKontonummer() {
return this.kontonummer;
}
public void setKontonummer(int _kontonummer) {
this.kontonummer = _kontonummer;
}
public Date getLetzte_Gutschrift_Abbuchung() {
return this.letzte_Gutschrift_Abbuchung;
}
public void setLetzte_Gutschrift_Abbuchung(Date _letzte_Gutschrift_Abbuchung) {
this.letzte_Gutschrift_Abbuchung = _letzte_Gutschrift_Abbuchung;
}
public void addZinsen() {
throw new UnsupportedOperationException();
}
public void delete() {
throw new UnsupportedOperationException();
}
}
Wenn ich das Programm jetzt ausführe und wähle im Menü 1 und dann P1 so werden mir dieselben Konten angezeigt als wenn ich 1 > P2 drücke.
Ich dachte eigentlich ich hätte die entsprechenden Konten an p1 übergeben, sodass ich keine Gefahr darin sah die Variable 'konten' (main.java ~ zeile 40) erneut wieder zu verwenden um andere konten an p2 zu übergeben.
Wo liegt der Fehler ?
(Ist bestimmt irgendwas total blödes aber ich sehe es grade einfach nicht...)
Danke schonmal!
Gruß