Methoden
Ziele
- Ich weiss, wofür Methoden da sind.
- Ich kenne den Aufbau einer Methode.
- Ich weiss, wie Parameter an eine Methode übergeben werden.
- Ich weiss, wie eine Methode einen Wert zurückgibt.
- Ich kann Methoden gezielt in meinem Programm einsetzen.
Was sind Methoden?
In Java sind Methoden benannte Codeblöcke, die eine bestimmte Aufgabe ausführen. Sie helfen, Programme besser zu strukturieren und wiederverwendbaren Code zu schreiben.

Methoden ermöglichen:
- das Bündeln von Anweisungen zu einer klaren Funktionalität
- das Ausführen dieser Funktionalität durch einen einfachen Aufruf
- eine saubere Trennung einzelner Aufgaben im Programm
Aufbau einer Methode
Eine Methode besteht aus einem Methodenkopf und einem Rumpf:
|
|
- Rückgabetyp: Gibt an, welcher Datentyp zurückgegeben wird (
int
,String
, …). Wird nichts zurückgegeben, nutzt manvoid
. - methodName: Der Name der Methode – über diesen wird sie aufgerufen.
- Parameterliste: Liste von Eingabewerten, die die Methode beim Aufruf erwartet.
- Anweisungen: Der Code, der ausgeführt wird, wenn die Methode aufgerufen wird.
Methoden mit Parametern
Methoden können Parameter (Eingabewerte) erwarten:
|
|
Diese Methode erhält einen String
-Parameter name
und gibt eine Begrüssung aus.

Wenn du dir die Erklärung noch mit einem Video anschauen möchtest, empfehlen wir dir dieses Video (YouTube, Methoden einfach erklärt).
Methoden mit Rückgabewert
Methoden können auch Werte zurückgeben:
|
|
Diese Methode addiert zwei Zahlen und gibt die Summe zurück.
Methoden ohne Rückgabewert (void
)
Wenn eine Methode keinen Wert zurückgeben soll, verwendest du den Rückgabetyp void
.
Solche Methoden führen Anweisungen aus, ohne ein Ergebnis an den Aufrufer zurückzugeben – z. B. eine Ausgabe oder das Setzen eines Wertes.
|
|
Du kannst diese Methode so aufrufen:
|
|
Wozu brauche ich Methoden?
Methoden bringen viele Vorteile:
- Wiederverwendbarkeit: Einmal schreiben, beliebig oft nutzen.
- Reduktion von Code-Duplikaten: Weniger Fehler, einfachere Wartung.
- Lesbarkeit: Durch sprechende Namen versteht man den Code schneller.
- Strukturierung: Jede Methode übernimmt eine klar abgegrenzte Aufgabe.
Beispiel: Division ohne Methoden
Ohne Methoden wiederholen sich Prüfungen und Ausgaben:
|
|
⚠️ Gleicher Code mehrfach und verschachtelte Blöcke → schlecht wartbar.
Beispiel: Division mit Methoden
Eleganter und übersichtlicher mit einer Methode:
|
|
✅ Nur eine zentrale Prüfung
✅ Verständlicher Code
✅ Wiederverwendbare Methode
Namenskonventionen für Methoden und Parameter
Methoden
Beim Benennen von Methoden beachtest du folgende Regeln:
- Der Name beginnt mit einem Kleinbuchstaben.
- Er besteht aus mehreren sinnvollen Wörtern im camelCase (z. B.
calculateTotal
). - Der Name beschreibt eine Aktion oder Aufgabe (z. B.
printText
,getUserName
). - Vermeide Abkürzungen, ausser sie sind allgemein verständlich (z. B.
id
,url
). - Parameter sind benannte Eingabewerte von Methoden. Für sie gelten die gleichen Regeln wie bei Variablen
Beispiele:
|
|

Rekursive Methoden
Eine Methode kann sich selbst aufrufen – das nennt man Rekursion.
Das ist besonders hilfreich, wenn sich ein Problem in gleichartige Teilprobleme zerlegen lässt.
Beispiel: Fakultät berechnen (n! = n * (n-1) * (n-2) * ... * 1
)
|
|
Ablauf bei factorial(3)
:
|
|

Jede Rekursion braucht eine Abbruchbedingung, sonst ruft sich die Methode endlos selbst auf – und das führt zu einem Fehler (“Stack Overflow”).
Vielleicht erinnerst du dich noch an die Erklärung von Stack und Heap. Der Stack wird benutzt, um Parameter an eine Methode zu übergeben. Sie bleiben dort, bis die Methode zurückkehrt. Bei Rekursion kommen immer wieder neue Parameter auf den Stack, ohne dass sie wieder freigegeben werden. Das führt dann innert kurzer Zeit dazu, dass es keinen Platz mehr auf dem Stack hat und es zum sogenannten “Stack Overflow” kommt. Es können dann keine Methoden mehr aufgerufen werden und das Programm wird beendet.

Wenn du dir die Erklärung noch mit einem Video anschauen möchtest, empfehlen wir dir dieses Video (YouTube, Methoden mit Rückgabewert).
Jetzt bist du dran. Löse bitte die folgenden
Aufgaben in den Labs.