Hallo, ich versteh folgendes Problem nicht:
Ich habe ein Programm, in das Kundendaten eingegeben werden. Diese werden dann in einem array abgespeichert. Der Nutzer soll die Möglichkeit haben, dann anhand der Eingabe einer Zahl sich den dort gespeicherten Kunden anzeigen zu lassen.
Eclipse gibt aber als Fehlermeldung, dass an der Stelle kunde.gibKundeAus(); kunde nicht aufgelöst werden kann. ich versteh nicht wieso ich die Methode nicht aufrufen kann.
Kann mir bitte jemand helfen?
Code:
//Hier werden die Kundendaten eingelesen
Kunde[] kunden = new Kunde[10];
for(int i = 0; i < 10; i++) {
Kunde kunde = new Kunde();
kunde.liesKundeEin();
kunden[i] = kunde;
//Hier sollten sie wieder ausgegeben werden
Tastatur.schreibe("\nWählen sie einen Kunden aus: ");
int auswahl = Tastatur.erfasseInt();
for(int i= 0; i<auswahl; i++)
{
kunde.gibKundeAus();
}
Du hast ein Array definiert. Dieses besteht aus 10 Elementen.
Die Methode gibKundeAus() ist sehr wahrscheinlich in der Klasse Kunde definiert.
Das Array kennt die Methode nicht und kann diese natürlich auch nicht ausführen. Ich vermute Du möchtest die Kundendaten eines bestimmten Kunden haben.
Daher musst Du angeben von welchem der 10 Kunden in Deinem Array, genau so wie nach dem Einlesen, dort schreibst Du auch kunden um einen speziellen Kunden anzusprechen.
Also:
Statt kunden.gibKundeAus() gehört da kunden.gibKundeAus() hin.
1. Problem: hier fehlt - wahrscheinlich - eine Klammer '}' (wenn nicht hier, dann weiter unten und dann macht die zweite for-Schleife nicht so recht Sinn.
weissNix hat gesagt.:
Code:
//Hier sollten sie wieder ausgegeben werden
Tastatur.schreibe("\nWählen sie einen Kunden aus: ");
int auswahl = Tastatur.erfasseInt();
for(int i= 0; i<auswahl; i++)
{
kunde.gibKundeAus();
}
2. Problem: Dein 'kunde'-Objekt wird innerhalb der ersten for-Schleife definiert. Außerhalb dieser for-Schleife gibt es dieses Objekt nicht und daher bekommst du in der zweiten for-Schleife eine entsprechende Fehlermeldung.
Danke für eure Antworten. Leider funktioniert es immer noch nicht und ich sehe einfach nicht den Lösungsweg.
Hat noch jemand nen vorschlag für mich?
Die Arrays befinden sich in der Main und die Methode gibKundeAus() befindet sich in einer anderen Klasse die Kunde heißt.
@Tharsonius: den Gedanken hatte ich auch, funktioniert aber nicht, er sagt dann dass er Kunden nicht auflösen kann-
@fehlerfinder: die Klammer ist da, hab sie nur nicht mitkopiert.
2. Problem: Dein 'kunde'-Objekt wird innerhalb der ersten for-Schleife definiert. Außerhalb dieser for-Schleife gibt es dieses Objekt nicht und daher bekommst du in der zweiten for-Schleife eine entsprechende Fehlermeldung.
Kunden hat er auch gar nicht geschrieben, sondern kunden - das kleine 'k' ist wichtig. Java ist case-sensitive!!!
weissNix hat gesagt.:
2. Problem: Dein 'kunde'-Objekt wird innerhalb der ersten for-Schleife definiert. Außerhalb dieser for-Schleife gibt es dieses Objekt nicht und daher bekommst du in der zweiten for-Schleife eine entsprechende Fehlermeldung.
siehe den Beitrag von Tharsonius. Dein Array heißt 'kunden' und das ist außerhalb der for-Schleifen definiert. Also kannst du auch in beiden Schleifen darauf zugreifen.
wie bereits gesagt wurde, kunde existiert in der einen Vorschleife nicht, weil es nicht "global" erzeugt wurde. Also muss es über kunden funktionieren.
Wenn nicht, welche Fehlermeldung wirft dir Eclipse genau aus?
Poste vielleicht mal etwas mehr Code von der Klasse Kunde.
Die Lösung hatte fehlerfinder schon.
Ich hatte das Array innerhalb einer if-anweisung. Nachdem ich es vor die Anweisung gepackt habe, hat alles super gefunzt. So is das wenn man den Wald vor Bäumen nicht sehen will