Storno und Rückgabe in Java - Verwendung
Habe ich einige "Verwirrung" über Storno und Rückgabe. Im Allgemeinen, ich verstehe void wird verwendet, in Methoden, ohne dass etwas zurückgegeben, und die Rückkehr wird benutzt in den Methoden, wenn ich möchte etwas zurückgeben an den aufrufenden code.
Aber in den folgenden code, kann ich beide verwenden, und meine Frage ist, welche zu benutzen? Und wie zu bestimmen? Ist es etwa die Leistung?
Normalerweise, ich habe die gleichen Ergebnisse in beiden Fällen.
public class Calc {
private double number;
Calc (double n)
{
number = n;
}
public void add(double n)
{
number += n;
}
public double add1(double n)
{
return number = number + n;
}
}
Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Methode :
Ändern Sie den internen Zustand von
number
aber der Aufrufer dieser Methode nicht weiß, der Letzte Wert vonnumber
.Unten In der Methode, die Sie andeutet der Anrufer, der den endgültigen Wert von
number
.Ich würde vorschlagen, eine getrennte
getNumber()
getter-Methode.Möchten Sie in der Lage sein, dies zu schreiben?
Wenn ja, dann halten Sie Ihre
add1
Methode. Eine vielleicht bessere Möglichkeit zu nutzen, um die Rückkehr Wert in Ihrer Art von Objekt ist die folgende:Nun können Sie schreiben
ist oft sehr bequem, liest sich gut, und schont die vertikale Platz auf dem Bildschirm.
Dieses idiom heißt das fluent-API.
In der void-Methode:
Sind Sie nicht in der Lage zu verwenden, die
n
variable in allen Methoden. Dies bedeutet, dass Sie nicht in der Lage sein, um es für dieCalc
Methode.Jedoch, wenn Sie verwenden eine Methode, die tatsächlich etwas zurückgibt, wie:
erhalten Sie verwenden diese variable als ein Objekt, so dass Sie es innerhalb der
Calc
- Methode und andere so oft Sie wollen, jedes mal könnte das gleiche Objekt (nicht empfohlen bei Verwendung zur Berechnung mit unterschiedlichen Werten) oder ein neues Objekt jedes mal.Soweit ich weiß, gibt es keine sichtbaren Leistungen Fragen.
(Classname) (name for object) = new (Classname)();
um ein Objekt zu erstellen und(variable type) (variable name) = (name of object you created).(method)();
an Stelle der Wert in eine variable.Ich persönlich bevorzuge, um einen Wert zurückzugeben. Es erlaubt Ihnen, um Informationen zu geben an die aufrufende code mit wenig bis keine Kosten (die Leistung ist in der Regel etwa die gleiche oder so). Es kann entweder das Ergebnis der Berechnung oder, wie Mark bereits erwähnt, das Objekt zu erlauben, Sie an die Kette-Anweisungen zusammen. Was man könnte, hängt von der spezifischen Anwendung.
return
sollte nicht verwendet werden mit void-Klasse Typ wie der Programm-Ausgang ist standardmäßig zurückgegeben und angezeigt werden können, durch geeignete Methoden der java-Klasse, wie, wenn Sie wollen, um den output Ihres Programms:System.out.println("number = " + number);
haben Sie die definition einer Funktion wie diese:
-öffentliche(oder private, etc)-lvl Zugang.
-statische(oder leer)für den Zugriff auf diese Methode ohne Erzeugung einer Instanz des Objekts.
-und void: haben Sie bemerkt, dass jede Funktion, die etwas zurückgeben haben, dass 'etwas' - Datentyp enthalten, die in der definition (zB: Rücksendung int-Werte oder strings). Jetzt, wenn die Funktion keinen Rückgabe, denken Sie an NICHTIG wie ein Platzhalter für Datentyp(int,string, etc)
Denken Sie an es auf diese Weise:
wenn Sie unten aus dem code, glaubst du, dass deine Klasse von nutzen ist:
Als Sie tun die Berechnung, sondern das Ergebnis der Berechnung nicht bekannt ist, an den Aufrufer der API:
public void add(double n)