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ß