Java Schnellstart – Methoden Rückgabewerte & Parameter

In der letzten Lektion hast du Methoden (Funktionen) kennengelernt. Dabei sind wir nur kurz auf Rückgabewerte und Parameter von Methoden eingegangen. Im Folgenden wollen wir diese zwei wichtigen Bestandteile von Java näher beleuchten.

Rückgabetyp: Taschenrechner-Beispiel

Stell dir vor, du möchtest einen Taschenrechner programmieren. Dieser soll zwei Zahlen addieren (z.B. 3 + 9). Da wir häufig auf diese Berechnung zurückgreifen wollen, möchten wir eine Methode schreiben.

Doch wie können wir beim Aufrufen der Methode einen Wert zurückgeben? Das erreichen wir mit dem "return"-Statement, genauer gesagt dem Rückgabewert.

Schaue dir folgenden Code an:

  public static int addition() 
  {
    int ergebnis = 3 + 9
    return ergebnis; 
  }

Erklärung: Im obigen Code haben wir eine Methode mit dem Namen "addition" definiert. Danach führen wir eine Addition der Zahlen 3 + 9 durch und speichern das Ergebnis, nämlich den Wert 12, in der Variable "ergebnis". Um das Ergebnis jetzt aus der addition()-Methode an unser Hauptprogramm zurückgeben zu können, benutzen wir das return-Statement (return ergebnis).

Nachstehend findest du das gesamte Programm, samt der Main-Methode:

class Main {
 public static void main(String[] args) 
 { 
    int ausgabe = addition(); 
    System.out.println(ausgabe); 
  }
  public static int addition() 
  {
    int ergebnis = 3 + 9;
    return ergebnis; 
  }
}
Code ausprobieren ×

Erklärung:

  1. Im obigen Code rufen wir die Methode addition() über die Variable "ausgabe" auf. Dadurch wird die Methode addition() ausgeführt. Wir befinden uns jetzt in Zeile 7.
  2. Im Anschluss wird das Ergebnis aus 3+9 berechnet und das Ergebnis in der Variable "ergebnis" gespeichert. (Zeile 9)
  3. In der nächsten Zeile wird das Ergebnis über das "return"-Statement (return ergebnis) an die Main-Methode zurückgegeben. (Zeile 10)
  4. Merke: Wir befinden uns jetzt wieder in der Main-Methode in Zeile 5. Da die Methode "addition()" einen Rückgabewert mitgeliefert hat, wird dieser in der nächsten Zeile über den System.out.println(ausgabe); Befehl (Zeile 5) auf dem Bildschirm ausgegeben.

Damit erhalten wir folgende Ausgabe:

Hinweis: Für Anfänger ist der Rückgabewert oft schwer nachzuvollziehen, da wir keine einfache Befehlsfolge von oben nach unten mehr haben und viel zwischen den einzelnen Zeilen springen. Je mehr du übst, desto klarer wird dieses Konzept jedoch. Falls du das Konzept noch nicht gänzlich verstanden hast, ist das ganz normal. Mut zur Lücke!

Kurzer Exkurs: Welche Rückgabetypen bzw. Datentypen kann ich verwenden?

Der Datentyp oder speziell in Methoden auch Rückgabetyp genannt, gibt an, welche Art von Daten man an die Main-Methode zurückgegeben oder speichern kann. Das ist wichtig, da jeder Datentyp unterschiedlich viel Arbeitsspeicher beansprucht und Java diesen entsprechend reserviert. Die Liste der Datentypen ist lang. Man unterscheidet generell zwischen "komplexen" und "einfachen" Datentypen. Zu Beginn wollen wir uns, bis auf wenige Ausnahmen, auf die einfachen Datentypen beschränken. Wichtige Datentypen sind Folgende:

Datemtyp / Rückgabetyp Größe im Arbeitsspeicher Beschreibung
byte 1 byte Speichert eine ganze Zahl von -128 bis 127
short 2 bytes Speichert eine ganze Zahl von -32,768 bis 32,767
int 4 bytes Speichert eine ganze Zahl von  -2,147,483,648 bis 2,147,483,647
long 8 bytes Speichert eine ganze Zahl von -9,223,372,036,854,775,808 bis 9,223,372,036,854,775,807
float 4 bytes Speichert Kommazahlen mit bis zu 7 Stellen nach dem Komma
double 8 bytes Speichert eine Kommazahl mit bis zu 15 Stellen nach dem Komma
boolean 1 bit Speichert true oder false  (also Wahr oder Falsch)
char 2 bytes Speichert ein einzelnes Zeichen  z.B. 'a'
String Variabel Speichert einen kompletten  Text z.B. "Hallo Welt!"

Parameter

Natürlich funktioniert unsere Methode, aber was passiert, wenn wir zusätzlich die Berechnung von "100 + 200" durchführen möchten. Müssen wir dann eine neue Methode, wie bspw. "addition2()" definieren, welche im Grunde dasselbe, nur mit anderen Zahlen macht?

Zum Glück nicht! Denn in Java gibt es sogenannte "Parameter". Parameter definiert man in den runden Klammern eine Methode. Sie geben an, dass wenn man die Methode aufrufen möchte, ein bestimmter "Input" der Methode mitgegeben werden muss.

Unsere addieren() Methode addiert zwei Zahlen, deshalb müssen wir auch zwei Parameter erstellen. Da wir Zahlen als "Input" haben möchten, müssen wir auch den Typ int angeben:

public static int addition(int zahlA, int zahlB)
{
	return zahlA + zahlB;
}

Erklärung: Wie du im obigen Code-Beispiel siehst, habe ich die einzelnen Parameter mit einem Komma getrennt. Im Methodenkörper werden die übergebenen Zahlen (zahlA & zahlB) im Anschluss addiert und das Ergebnis wird zurückgegeben.

Beim Methodenaufruf in der Main-Methode sind wir nun verpflichtet, der Methode addition() zwei Werte vom Typ int zu übergeben.

class Main {
 public static void main(String[] args) 
 { 
   // 9 + 3
    int ergebnis1 = addition(9, 3);
    System.out.println(ergebnis1);

    // 100 + 200
    int summand1 = 100;
    int summand2 = 200;
    int ergebnis2 = addition(summand1, summand2);
    System.out.println(ergebnis2);
  }
  public static int addition(int zahlA, int zahlB) 
  { 
    return zahlA + zahlB;
  }

}
Code ausprobieren ×

Damit erhalten wir folgendes Ergebnis:

Code-Challenge: WhatsApp-Nachrichten verknüpfen

Sicherlich kennst du die Situation: Du bekommst eine neue WhatsApp Nachricht. Ein paar Sekunden später kommt die nächste Nachricht. Diese vielen kurzen Nachrichten werden schnell unübersichtlich.

Du als Entwickler bei WhatsApp sollst eine Methode entwickeln, die drei verschiedene Texte (String) in einen Text (String) umwandelt. Um zwei (oder mehrere) Strings miteinander zu verknüpfen, benutzt du den Plus-Operator (+) Denke daran, dass Texte (auch Strings genannt) mit einem Vor- und Nachstehenden Anführungsstrich geschrieben werden (z.B. "Hallo wie gehts").

Deine Aufgabe:

1. Schreibe eine Methode (z.B. mit dem Namen "verknüpfeDreiNachrichten"), die drei Parameter als String entgegennimmt.

2. Die Methode soll, die drei übergebenen Parameter (z.B. text1, text2, text3) dann verketten (verknüpfen).

Im nachfolgenden Code findest du bereits drei vordefinierte WhatsApp-Nachrichten als String (nachricht1, nachricht2 und nachricht3), die du benutzen kannst.

[lp_spoiler title="Lösung anzeigen" class="da"]

Eine mögliche Lösung:

class Main {
  public static void main(String[] args) {
    String nachricht1 = "Moin Max!";
    String nachricht2 = "Tom und ich treffen uns heute im Kino.";
    String nachricht3 = "Hast du Lust mitzukommen?";

    String verketteteNachricht = verknüpfeDreiNachrichten(nachricht1, nachricht2, nachricht3);
    System.out.println(verketteteNachricht);
    
  }
  public static String verknüpfeDreiNachrichten(String text1, String text2, String text3)
  {
    return text1 + " " + text2 + " " + text3;
  }
}
Code ausprobieren ×

[/lp_spoiler]

Fazit

Du hast in dieser Lektion gelernt, dass du mit Parametern Werte an eine Methode übergeben kannst. Beachte hierbei, dass die Methode einen bestimmten Rückgabetyp (z.B. String, Int usw.) benötigt. Sobald deine Methode verarbeitet wurde, kannst du einen konkreten Wert mit dem Schlüsselwort return aus dieser Methode zurückgeben. Wurde der Wert zurückgegeben, so endet die Ausführung der Methode.

(Gut zu wissen: Der Rückgabetyp "void" ist ein spezieller Rückgabetyp, welcher im Grunde aussagt, dass du keinen Wert zurückgibst.)

Mit Methoden und den vielen Feinheiten wie Parametern, Rückgabewerten usw. werden deine Java-Programme flexibler und modularer.