Wie die Rückkehr Klasse - type-in-Methode
Habe ich eine Klasse
public class Engine {
Double engineSize;
public Engine(){
this.engineSize = 1.0;
}
public Double getEngineSize() {
return engineSize;
}
}
Habe ich eine andere Klasse:
public class ModelT {
public Engine getEngine() {
return null;
}}
Nun möchte ich diesen test zu bestehen:
@Test
public void shouldHaveTheCorrectEngineSize(){
assertThat(modelT.getEngine().getEngineSize(), is(1.0));
}
Habe ich die Schwierigkeit, wie kann ich wieder den Motor geben, eine Methode, versuchte ich mehrere Möglichkeiten, aber wissen ist begrenzt, denn ich bin Anfänger auf java.. Könnten Sie mir bitte sagen, wie könnte ich dies tun? und was ist der name Konzept, ich könnte weiter Lesen..
Warum
Ich bin mir nicht wirklich sicher, wie um Ihre Frage zu beantworten. Kehren Sie ein Motor-Typ (Objekt) durch Rücksendung Motor Typ object. Nur wie Sie wieder ein Doppel im
Ich hielt es null jetzt wie eine Frage, , wie konnte ich zurückgeben, die Art des Motors anstelle von null, und hier um den Wert der getEngineSize durch diese Methode und schicken Sie es als Engine-Objekt... ich bin ein Anfänger und es ist sehr verwirrend für mich...
Wenn Sie Schwierigkeiten haben, Dinge zu tun, wie, dass, würde ich empfehlen, nicht zu starten, mithilfe von JUnit, aber durch das Studium einiger tutorials. Beispiel: docs.oracle.com/javase/tutorial/java/nutsandbolts
aber wie konnte sich der Wert von 'getEngineSize()' durch 'getEngine()' und schicken Sie es als Motor Typ?
getEngine
Gegenzug, ein null-Objekt? Sie können nicht jede Methode fordert.Ich bin mir nicht wirklich sicher, wie um Ihre Frage zu beantworten. Kehren Sie ein Motor-Typ (Objekt) durch Rücksendung Motor Typ object. Nur wie Sie wieder ein Doppel im
getEngineSize
Sie können das gleiche tun, durch Rücksendung eines Motors in getEngine
Ich hielt es null jetzt wie eine Frage, , wie konnte ich zurückgeben, die Art des Motors anstelle von null, und hier um den Wert der getEngineSize durch diese Methode und schicken Sie es als Engine-Objekt... ich bin ein Anfänger und es ist sehr verwirrend für mich...
Wenn Sie Schwierigkeiten haben, Dinge zu tun, wie, dass, würde ich empfehlen, nicht zu starten, mithilfe von JUnit, aber durch das Studium einiger tutorials. Beispiel: docs.oracle.com/javase/tutorial/java/nutsandbolts
aber wie konnte sich der Wert von 'getEngineSize()' durch 'getEngine()' und schicken Sie es als Motor Typ?
InformationsquelleAutor Tayyab | 2017-07-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie für das speichern einer Instanz der Engine in Ihre ModeT Klasse:
dann in deiner Main - erstellen eines Engine-Objekts auf und übergeben zu modelt:
InformationsquelleAutor OldProgrammer
Vielleicht bin ich auch nicht verstehen, Ihre Frage, aber Ihre Tests nie zurückkehren wird, ok, weil in Ihr ModelT Methode getEngine, das Sie wieder eine null..
Versuchen Sie es mit folgenden code:
InformationsquelleAutor Toni Montero
Es ist ein wenig schwer zu sehen, was Sie zu erreichen versuchen.
Kann man sich in instanceof, um die Klasse der Motor.
Vielleicht möchten Sie sich in die Vererbung und die verschiedenen Möglichkeiten, die Sie beziehen können Klassen.
https://www.tutorialspoint.com/java/java_inheritance.htm
InformationsquelleAutor SleepyFox89
Dieser test wird nie passieren, weil Sie zurück
null
imgetEngine()
Methode.Wenn Sie anrufen
getEngineSize()
aufnull
erhalten Sie eineNullPointerException
Müssen Sie etwas tun, wie dieses:
Dann werden Sie in der Lage sein zu verwenden Ihre
Engine
.Wegen Ihrer questoin darüber, wie Sie lernen die Grundlagen in Java, würde ich dir empfehlen die Java-Grundlagen von Oracle direkt.
Sie müssen verstehen, dass die getEngineSize gibt eine Eigenschaft des Motors. Also dein Motor schon weiß die Größe. So könnten Sie ändern Sie einfach die return-Typ von Motor zu Verdoppeln, weil die EngineSize, ist eine doppelte.
Wenn das machen würde, würde ich scheitern den test, da; im test zeigt es diesen Fehler dann;Die Methode getEngineSize() ist nicht definiert für den Typ Double
InformationsquelleAutor Christian Wörz
Ihre getter wird mehr Sinn machen, wenn Sie bei der Zuordnung der
Engine
Klasse mit derModelT
und indem ich meine, mit einem Zusammensetzung Beziehung
du irgendwo:
I#ve aktualisiert die Antwort... Sie haben ein Objekt der Klasse ModelT, im inneren befindet sich ein Motor und innen verdoppeln... so können Sie call-Getter, bis Sie das Wert 🙂
das wird nicht funktionieren, für mich sehen Sie bitte hier
public Engine getEngine() { ModelT foo = new ModelT(); Motor e = foo.getEngine(); double s = e ist.getEngineSize(); return s; }
InformationsquelleAutor ΦXocę 웃 Пepeúpa ツ