Recursive Constructor Invocation
public class LecturerInfo extends StaffInfo {
private float salary;
public LecturerInfo()
{
this();
this.Name = null;
this.Address = null;
this.salary=(float) 0.0;
}
public LecturerInfo(String nama, String alamat, float gaji)
{
super(nama, alamat);
Name = nama;
Address = alamat;
salary = gaji;
}
@Override
public void displayInfo()
{
System.out.println("Name :" +Name);
System.out.println("Address :" +Address);
System.out.println("Salary :" +salary);
}
}
Diesem code erscheint eine Fehlermeldung, die lautet:
Recursive constructor invocation LecturerInfo()
Ist es, weil der no-argument-Konstruktor er Konflikte mit dem Konstruktor mit Parametern?
Bitte lernen gemeinsam Java-Namenskonventionen (im speziellen der Fall, verwendet für die Namen) für Klassen -, Methoden - & Attribut-Namen & nutzen Sie Sie konsequent.
Hoffentlich wird er verlieren Marken für schlechten Stil. Das wird seine Aufmerksamkeit bekommen. Aber ein savage-code-überprüfung am Arbeitsplatz wirksam wäre auch ... wenn er es macht vorbei an den obligatorischen interview-Codierung übung.
Warum nicht version: stackoverflow.com/questions/9918795/constructor-calling-itself
Hoffentlich wird er verlieren Marken für schlechten Stil. Das wird seine Aufmerksamkeit bekommen. Aber ein savage-code-überprüfung am Arbeitsplatz wirksam wäre auch ... wenn er es macht vorbei an den obligatorischen interview-Codierung übung.
Warum nicht version: stackoverflow.com/questions/9918795/constructor-calling-itself
InformationsquelleAutor Darsshan Nair | 2013-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
den code unten rekursiv ist. Da
this()
rufen keine arg-Konstruktor der aktuellen Klasse, dass bedeutetLectureInfo()
wieder.InformationsquelleAutor Ankit
durch den Aufruf
this()
Sie anrufen, Ihre eigenen Konstruktor. Durch die Beobachtung des code es scheint, Sie waren nennen sollsuper()
stattthis();
super()
Konstruktor wird automatisch aufgerufen, wenn keine anderen super-Konstruktor aufgerufen wird konkret. Keine Notwendigkeit, fügen Sie diese Zeile...Es ist auch durchaus möglich, dass er aufrufen soll
this(null, null, 0.0f);
InformationsquelleAutor stinepike
wenn Sie ändern die Faust Konstruktor:
diese rekursiv.
InformationsquelleAutor Sam