2016-06-20 4 views
0

Ich lerne, wie man in Java programmiert. Ich bin etwas verwirrt von "Rückkehr"; und was es tut und wann wir es benutzen. Bitte beachten Sie die folgenden Beispiel-Code:Was ist der Unterschied zwischen der Rückkehrfunktion und dem Speichern einer Variablen?

public int something() { 
    return 1; 
} 

public static void main() { 
    int returnValue = something(); 
    System.out.println(returnValue); 
    //Prints 1 
} 

Warum nicht speichern wir nur 1 in ein int-Variable namens etwas dann System.out.print(something); verwenden

Wann möchten wir die Rückkehr Methode verwenden, anstatt einfach in eine Variable speichern ?

Danke

+0

'add (1,2);' Wie schlagen Sie vor, dass wir den Wert 3 aus dieser Methode ohne eine Rückkehrfunktion erhalten? – Compass

+0

Was ist, wenn 'something()' etwas viel komplizierter macht als nur 'return 1'? Sie können nicht einfach "1" zuweisen, da Sie nicht wissen, dass "1" das ist, was Sie zurückgeben möchten, bis Sie alle Arbeit erledigt haben. – azurefrog

+0

Wenn Sie viele Optionen haben, um von 'something()' zurückzukommen, kann Ihre Variable nicht nur den Wert 1 speichern, wenn es nicht einmal eine Variable ist, ist es eine Konstante. – GuiDupas

Antwort

3

Sicher, dass Sie in einer Variablen speichern können, aber dann würden Sie eine der sehr wichtigen Eigenschaften verlieren, nämlich die Fähigkeit, in sich selbst die Methode aufzurufen.

Dies ist relevant für Algorithmen, die die Arbeit in kleinere Stücke aufteilen und sich auf den kleineren Stücken aufrufen (und dann das individuelle Ergebnis zu einem großen Ergebnis kombinieren). Dies ist sehr häufig bei Sortieralgorithmen. Der Fachausdruck lautet Rekursion.

In der Regel der Compiler tatsächlich tut genau dies; erstellt eine Variable zum Speichern des Wertes, von dem der aufrufende Code den Wert übernehmen kann. Diese Variable wird normalerweise an demselben Speicherort abgelegt - der Stapel - als die an die aufgerufene Methode übergebenen Parameter und ist für Ihren Code unsichtbar.

(Auch ist es notwendig, um es threadsafe, die wesentlich für die Verwendung von mehr als einem Kern auf einer modernen CPU ist).

+0

Das hat es perfekt erklärt, Danke! –

Verwandte Themen