Rückgabetyp "return" Erklärung Java?

5 Antworten

Die "return"-Anweisung dient in Java dazu, dem Aufrufer einer Methode einen Wert (welcher meist in der Methode ermittelt wird), zurück zu liefern.

Methoden werden meist dazu verwendet, um Logik auszulagern. Dadurch wird der Code sauberer und man kann diese Code-Teile wiederverwenden.

So könnte ich z.B. eine Methode add(int n1, int n2) haben, welche die beiden Angegebenen int-Werte zusammenzählt und zurückliefert. Diese Methode könnte dann für eine normale Addition, aber auch z.B. für das Berechnen der Fakultät wiederverwendet werden.

Häufig ist es dabei notwendig, dass der Aufrufer mit der Methode "sprechen" kann und umgekehrt. Die Kommunikation vom Aufrufer in Richtung Methode erfolgt mithilfe der Parameter, während die Kommunikation von der Methode zurück zum Aufrufer über den Rückgabewert erfolgt.

Im "Kopf" der Methode wird dabei festgelegt, wie viele und welche Parameter angegeben werden müssen und von welchem Typ der Rückgabewert ist. So z.B. muss folgende Methode einen Wert vom Typ "int" zurückliefern

public int getInt()

während folgende Methode einen Wert vom Typ "boolean" liefern muss:

public boolean getBoolean()

Es ist auch möglich Methoden zu definieren, welche nichts zurückliefern. Diese haben den Rückgabetyp "void":

public void getNothing();

Um den Rückgabewert abzufragen, kann der Aufrufer der Methode diesem z.B. einer Variable zuweisen:

int iWert = getIntWert();
boolean bWert = getBoolean();

Das Schlüsselwort "return" hat aber auch noch eine Weitere Funktion:

Sobald das "return" ausgeführt wird, wird der weitere Code in der Methode nicht mehr ausgeführt. Folgende zwei Code-Beispiele würden dabei zum selben Ergebnis führen:

public int get1IfTrue(boolean b) {
    if (!b)
       return 0;
    return 1;
}
public int get1IfTrue(boolean b) {
    int result = 0;
    if (b)
       result = 0;
    else
       result = 1;
    return result;
}

Kurz gesagt:

Über "return" kann dem Aufrufer einer Methode ein Wert zurückgeliefert werden. Dabei wird die weitere Ausführung dieser Methode abgebrochen und sofort zum Aufrufer "zurückgesprungen". 

Der Wert, welcher zurückgegeben wird wird dabei "Rückgabewert" genannt.

Also es ist so, rein technisch gesehen brauchst du funktionen mit rückgabetypen nicht (wenn du alles in eine methode packst z.B. was aber schwachsinn ist) jedoch sind sie extrem nützlich.

Du musst dir das ganze linear vorstellen d.h. du hast zum Beispiel diese Methode main():

void main()
{
CallMethode()
CallMethode2()
int lResult =Func(1) // lResult ist dann 2
//weiterverarbeiten
}

int Func(int pParam)
{
return pParam + pParam;
}

Die Methode main beginnt das programm.
Es wird die methode CallMethode() aufgerufen.
DANNACH die Methode CallMethode2.
DANNACH Func() mit der Zahl 1 als Parameter und die methode gibt eine zahl in abhängigkeir zum parameter zurück (hier 1 + 1). Die kannst du dann speichern in der methode wo du die fubktion aufgerufen hast und sie dann weiterverarbeiten.

Funktionen dienen manchmal dazu Daten zu verarbeiten/verrechnen und wenn man an dass Ergebnis kommen will so müssen Sie diesen "zurückgeben". Also, returnen. Eine Funktion könnte so aussehen:

int Addieren(a,b){
 return (a + b);
}

Diese Funktion nimmt 2 Werte an, addiert Sie und gibt das Ergebnis zurück.

Man würde Sie also so verwenden:

int a = 5;
int b = 10;
int ergebnis = Addieren(a,b);

In ergebnis steht jetzt 15. Wir haben unsere beiden werte an Addieren weitergegeben, die Methode hat intern die Summe berechnet und es dann zurückgegeben. Da wir sagen ergebnis = Addieren(a,b) wird der Rückgabewert ergebnis zugewiesen.

Der Rückgabetyp, ist der Typ der Daten die man zurück gibt. In unserem Fall eben ein int. Das könnte aber auch string oder boolean sein.

Den Rückgabetyp legt man fest wo man die Funktion erstellt. In unserem Fall hieß es ja "int Addieren(a,b)". int war der Rückgabetyp. (a+b) der Rückgabewert.

Woher ich das weiß:Berufserfahrung – Beruf, Schule, Hobby und eigene Erfahrungen
Wauuw0  25.11.2016, 13:38

* public int addieren(int a,int b)

0
Berny96  25.11.2016, 19:32
@Wauuw0

Oh man, da hab ich wohl in letzter Zeit zu viel Javascript geschrieben... 

0

Der Rückgabewert ist quasi das Ergebnis der Funktion. Beispiel: Du baust eine Funktion, die einfach das Quadrat des Eingabewertes berechnet:

private static int rechneQuadrat(int eingabe) 

return eingabe * eingabe; 
}

Jetzt kannst du in deiner main-Methode einfach die Funktion "rechneQuadrat" aufrufen und die gibt das Ergebnis (in diesem Beispiel 5 mal 5 = 25) an die aufrufende Prozedur zurück.

public static void main(String[] args)
{
    System.out.println(rechneQuadrat(5));
}

return ist kein Rückgabetyp, sondern gibt eine Variable oder ein Objekt aus einer Funktion an den Aufruf zurück.