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:
|
|
- public static: Gibt an, dass die Methode überall und immer genutzt werden darf (darauf gehen wir später genauer ein)
- 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 ohne Parametern
Methoden können auch ohne Parameter definiert werden:
|
|
Diese Methode hat keinen Parameter und gibt einfach einen Text aus.
Methoden mit Rückgabewert
Methoden können auch Werte zurückgeben:
|
|
Diese Methode addiert zwei Zahlen und gibt die Summe zurück.
Du kannst diese Methode so aufrufen:
|
|

Wenn du dir die Erklärung noch mit einem Video anschauen möchtest, empfehlen wir dir dieses Video (YouTube, Methoden mit Rückgabewert).
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.
Aufruf fremder Methoden
Methoden werden immer einer “Klasse” zugeordnet:
|
|
In anderen Methoden in derselben “Klasse” können sie direkt aufgerufen werden:
|
|
Der Name einer Methode muss innerhalb der gleichen Klasse eindeutig sein:
|
|
Ist die Methode in einer anderen “Klasse”, muss man den Namen der Klasse angegen:
|
|

Lokale und statische Variablen
Bis jetzt hast du Variablen immer innerhalb einer Methode genutzt. Die bezeichnet man genau genommen als lokale Variablen.
- Lokale Variablen werden innerhalb einer Methode deklariert und existieren nur während der Ausführung dieser Methode.
- Statische Variablen gehören zur Klasse und behalten ihren Wert zwischen mehreren Methodenaufrufen.
Beispiel:
|
|
In diesem Beispiel:
message
ist eine lokale Variable: Sie existiert nur innerhalb von sayHello() und wird bei jedem Aufruf neu erstellt.
calls
ist eine statische Variable: Sie merkt sich, wie oft die Methode aufgerufen wurde – auch über mehrere Aufrufe hinweg.
Jetzt bist du dran. Löse bitte die folgenden
!*Aufgaben in den Labs.