7. Funktionen
Einfach gesagt ist eine Funktion eine Zusammensetzung von
mehreren unterschiedlichen Befehlen.
Willst du zum Beispiel öfters eine Konsolenausgabe machen, aber dir es zu
aufwändig ist diesen Code immer wieder zu schreiben, so wird dir eine Funktion
sehr hilfreich sein.
7.1 Meine erste Funktion
Schauen wir uns dazu zuerst mal den Aufbau einer Funktion an:
public void sagHallo() {
System.out.println("Hallo.");
}
Diese Funktion ist eine leere Funktion, da sie nichts
zurückgibt, sondern direkt eine Ausgabe macht, weshalb da auch void verwendet wurde. Will man zum
Beispiel einen String zurückgeben, wäre anstelle von void String verwendet
worden und zusätzlich müsste man in der Funktion einen String-Wert mit return zurückgeben. Weiteres dazu wird
später erklärt. Nun zurück zu dieser Funktion. Der Funktionsname dieser Funktion
ist sagHallo. Sie gibt einfach ein Hallo auf der Konsole aus. Lässt du diese
Funktion einfach so, wird sie nichts tun. Denn damit sie ihre Aufgabe erfüllt,
musst du sie jedes Mal aufrufen. Dies tut man, indem man den Funktionsnamen mit
den Klammern schreibt:
sagHallo();
7.2 Funktion mit Parameter
Nun werden wir uns eine Funktion mit einem Übergabeparameter anschauen. Der Übergabeparameter ist einfach eine Variable eines bestimmten Datentyps, der du jedes Mal, wenn du die Funktion aufrufst, einen Wert übergeben musst. Hier eine Funktion mit einem Parameter:
public void sagHallo(String name) {
System.out.println("Hallo " + name + ", du hast eine Funktion aufgerufen.");
}
Wie
du sehen kannst, steht hier nach dem Funktionsnamen sagHallo etwas in Klammern. Genau das ist der Übergabeparameter. Hier
wurde dafür der Datentyp String benutzt. Das heisst, sobald du die Funktion
aufrufst, musst du ihr einen String-Wert übergeben. Ansonsten wird sie ihre
Aufgabe nicht erfüllen können. Das ist wie beim Reparieren eines Handys. Der Reparateur
kann deinen Auftrag nicht erledigen, wenn du dein Handy ihm nicht überreichst.
Diese Funktion macht auch eine Konsolenausgabe, wobei aber der übergebene String-Wert
auch ausgegeben wird. Beim Aufrufen dieser Funktion gibt es nur einen kleinen Unterschied zu deiner ersten Funktion ohne Übergabeparameter. Denn hier musst
du logischerweise einen Wert mitgeben:
sagHallo("Max Mustermann");
7.3 Funktion mit Rückgabewert
Eine Funktion mit einem Rückgabewert, führt die Aufgabe
nicht sofort aus, wie wir es bei den beiden anderen Funktion gesehen haben,
sondern er verarbeitet etwas und überreicht dir das Endprodukt.
Schauen wir uns dazu eine solche Funktion an:
public int verdopple(int zahl) {
return zahl * 2;
}
Die Funktion verdopple
verdoppelt, wie der Funktionsname schon sagt, eine Zahl, die man beim Aufrufen
der Funktion übergeben muss (-> es hat einen Übergabeparameter!). Das Ergebnis
wird jedoch nicht direkt irgendwo ausgegeben. Denn wie du sehen kannst steht bei
dieser Funktion nicht mehr void vor
dem Funktionsnamen, sondern int. Das
bewirkt, dass die Funktion einen Wert des Datentyps Integer wieder zurückgibt. Dies
tut sie mit return.
Willst du jetzt das Ergebnis dieser Funktion auf der Konsole ausgeben, so musst
du einfach die Funktion innerhalb einer Konsolenausgabe aufrufen und dabei
einen Int-Wert übergeben, denn sonst kann die Funktion ja gar nichts verdoppeln:
System.out.println(verdopple(5));