Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
programiere erst relativ neu mit Java. Ich habe noch einpaar Verständnis Fragen.
public class Abfrage
{ public static void main( String [] Aufrufparam)
{int g, k = 0;
g = Eingabe();
if (g == 1) k += 100;
else if ( g == 2) k += 1000;
System.out.println("k = " + k);
}
}
Folgende Fehlermeldung erhalte ich, wenn ich über die Eingabeaufforderung javac Abfrage.java eingebe
Abfrage.java;7: cannot find symbol
symbol : method Eingabe()
location: class Abfrage
g = Eingabe();
1 Error
---
In der Vorlesung hatten wir noch den folgen Code bekommen
public class Eingabe
{ public static int Eingabe ()
{ String s = ""; int f = 0;
java.io.BufferedReader d =
new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
try { f = Integer.value0f(s).intValue(); }
catch (NumberFormatException e)
{ System.out.println(
"String Conversion to int failed" + e);}
return f;
}
}
-------------------------------------
Ich denke mal die Fehlermeldung bedeutet, das Eingabe() nicht funktioniert. Nur habe ich es nicht ganz verstanden. Muss ich den obrigen code mit in meine Class Abfrage reinpacken oder separat im gleichen ordner (also 2. java datei) speichern? Bei diesem Code erhalte ich auch Fehlermeldungen. Muss ich daran was ändern?
Danke für die Antwort. Folgende Fehlermeldung erhalte ich jetzt
Eingabe.java:10: cannot find symbol
symbol :method value0f(java.lang.string)
location: class java.lang.Integer
try (if = integer.value.0f(s)intvalue()
1 Error
Ich denke mal jetzt liegt das problem beim 2. Code oder? Weiterhin nochmeine Frage. Woher erkennt Java das ich eine 2. Java-Datei habe? Also muss ich vorher die 2. Datei kompilieren?
Nun könnte es sein, das ich den Code falsch getippt habe (was ich nicht hoffe). ist Eingabe() eine allgemeine Abfrage, die jeder verwendet und ich es kopieren kann? So kann ich tippfehler vermeiden
Der Classpath wird durchsucht. Dabei wird die 2te Klasse gefunden da sie im gleichen Verzeichnis liegt.
Nun könnte es sein, das ich den Code falsch getippt habe (was ich nicht hoffe). ist Eingabe() eine allgemeine Abfrage, die jeder verwendet und ich es kopieren kann? So kann ich tippfehler vermeiden
Wenn das eine Klasse währe die jeder verwenden würde hättest du sie ja nicht gebraucht, oder? :wink:
Manche Lehrer/Professoren meinen einfach sie müssten ihren Schülern/Studenten den Umgang mit der Tastatureingabe mit schlecht programmierten kleinen Klassen abnehmen.
ein leerer String führt bei Integer.value0f(s) zu der NumberFormatException,
da ist nix besonderes dabei,
da musst du halt dafür sorgen, dass entweder in s was anderes drinsteht,
oder dass der Fall "" gesondert behandelt wird (if "".equals(s))
oder mit dieser Exception weiterleben
ein sinnvolles Vorgehen wäre an dieser Stelle eventuell,
den String s mit einer Eingabe von der Konsole zu füllen,
das ist bisher dort nicht geplant,
dafür fehlt wohl
s = d.readLine();
oder ähnlich