Also mein Java-Code eines Objekt Konstruktor Klasse umfasst die Definition:Java nicht von anderer Klasse zu erkennen Feld
public static class bookID{
bookID(String startAuthor, String startGenre, int startNumID){
String author = startAuthor;
String genre = startGenre;
int numID = startNumID;
String finalID = author + genre + Integer.toString(numID);
}
}
Und dann instanziieren die Klasse nach der Eingabe des Benutzers Verarbeitung (im Hauptverfahren des Programms).
bookID newID = new bookID(authFinal, genre, numID);
books.add(newID);
System.out.println(newID.finalID);
jedoch die letzte Zeile einen Fehler wirft, sagen, es der finalID Variable ‚nicht Symbol finden können‘, trotz newID bereits genannt zu werden, und es sollte eine Instanz von finalID als ein Feld haben. Kann jemand darauf hinweisen, was ich hier falsch mache?
Hier ist der Fehler:
Bookstore.java:100 error: cannot find symbol
System.out.println(newID.finalID);
symbol: variable finalID
location: variable newID of type bookID
Das liegt daran, 'finalID' ist keine Variable in der' bookID' Klasse. Es ist eine lokale Variable im Konstruktor 'bookID'. – azurefrog
[Was ist der Unterschied zwischen einer lokalen Variablen, einem Instanzfeld, einem Eingabeparameter und einem Klassenfeld?] (Https://stackoverflow.com/q/20671008) – Pshemo