Ich kann zwei Kompilierungsfehler sehen, plus einen großen Haufen von Stilfehlern.
Diese Zeile:
return System.out.println("ID: "+ID + " First Name: "+FirstName+
" Last Name: " +LastName+" Marital Status: "+ StringStatus +
" Age: "+Age);
1) Die Variable StringStatus
wurde nicht deklariert.
1a) Sie haben das dann zu (String) Status
geändert, was auch falsch ist, weil Sie kein MaritalStatus
zu einem String
werfen können. (Aber Sie können toString()
auf nennen ....)
2) Die println
Methode ist eine Methode, die void
kein String
zurückgibt.
Der primäre Stil Fehler ist:
- Feldnamen mit einem Großbuchstaben sollen nicht gestartet werden.
- Ihre Verwendung von Leerzeichen vor/nach Token ist nicht standardkonform und inkonsistent. Setzen Sie ein einzelnes Leerzeichen vor und nach Infix-Operatoren wie
+
und =
. Keine Leerzeichen vor einer ,
und einem Leerzeichen nach.
- Die Verwendung einer Zeile mit mehr als 150 Zeichen ist nicht Standard ... und macht Ihren Code schwer lesbar. Für maximale Lesbarkeit sind maximal 80 Zeichenzeilen am besten geeignet.
- Das Einrücken um 8 Felder ist zu groß.
Felder sollten private
nicht protected
sein.
Dies ist mehr als nur Stil. Wenn Sie kein Feld als private
deklarieren, könnte eine Unterklasse oder (schlechter) ein anderer nicht verwandter Code möglicherweise den Wert des Feldes beeinträchtigen. Das bedeutet, dass Sie viel mehr Code lesen müssen, um zu verstehen, was passieren könnte, wenn Sie einen Fehler aufspüren (zum Beispiel). Mit private
hilft den Typ zu verkapseln, der den Code leichter zu lesen und einfacher zu verstehen macht.
IMO, die beste Art und Weise mit Parameternamen und Feldnamen zu befassen, die die gleiche (zB in einem Konstruktor) sind, ist wie folgt:
public class Person {
protected int id;
public Person(int id) {
this.id = id; // Use 'this' to disambiguate the two meanings
// of the 'id' identifier.
}
}
1 - Leider sind einige "hilfreiche" Person hat eine Menge davon korrigiert, um den Code in Ihrer Frage lesbar zu machen. Bitte beziehen Sie sich auf die Sachen, die Sie ursprünglich gepostet haben.
Erste Dinge zuerst, [Namenskonventionen] (http://java.about.com/od/javasyntax/a/nameconventions.htm). Dann, http://stackoverflow.com/questions/6667243/using-enum-values-as-string-literals. – Idos
So zeigt der Pfeil in der Fehlermeldung genau auf das Problem. Aber du hast diesen Code nicht gepostet, du hast einen anderen gepostet, der das Problem nicht hat. – Tunaki
Woher kommt 'StringStatus'? Es sollte wahrscheinlich 'status.toString()' sein –