Ich war in der Lage, einen geheimen Test mit meinem Code zu bestehen, der im Wesentlichen den Code mit bestimmter Eingabe und erwarteter Ausgabe prüft. Ich hielt eine Assertion Fehler immer in dem es hieß, erwartet < 1> aber war: < 0> Bis ich den Code aus dieser geändert:Unterschied zwischen der Verwendung dieser beiden Standardkonstruktoren?
public Gunner(){
this.gunpower = 1;
this.GunnerStrength = 1;
this.name = "Default Gunner";
}
zu
public Gunner() {
this("Default Gunner", 1, 1);
}
weiter zu veranschaulichen und Bezugspunkte zu geben, hier sind die Codes, die den obigen Code vorangestellt wird:
package ship;
public class Gunner {
private String name;
private int gunpower;
private int GunnerStrength;
private int maxGupower;
private int maxGunnerStrength;
private int currentGunpower;
private int currentGunnerStrength;
public Gunner(String l_name, int l_gunpower, int l_GunnerStrength) {
this.name = l_name;
this.currentGunpower = maxGunpower = l_gunpower;
this.currentGunnerstrength = maxGunnerStrength = l_GunnerStrength;
}
public Gunner(Gunner other) {
this.name = new String(other.name);
this.gunpower = new Integer(other.gunpower);
this.GunnerStrength = new Integer(other.GunnerStrength);
this.maxGunpower = new Integer(other.maxGunpower);
this.maxGunnerStrength = new Integer(other.maxGunnerStrength);
this.currentGunpower = new Integer(other.currentGunpower);
this.currentGunnerStrength = new Integer(other.currentGunnerStrength);
}
}
Wenn jemand die Unterschiede zwischen den beiden Codes bitte erklären könnte, darüber viel sein würde, abgeschrieben.
Abhängig von Ihrem "Test" hat der erste weder currentGunpower noch currentGunnerStrength eingestellt. Stellen Sie im Grunde sicher, dass Sie alle Instanzvariablen initialisieren, wenn sie wichtig sind. – KevinO
_ "einen geheimen Test bestehen" _ - Was ist ein geheimer Test? –
Was meinst du mit "geheimer Test"? Wenn das eine Art von Kurs ist, denke ich, dass Sie mit dem Kursleiter klären müssen. – krock