Methoden

In diesem Modul lernst du, wie du Methoden in Java definierst, Parameter übergibst und Rückgabewerte nutzt.

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.
⏱️ Geschätzte Lesezeit: 15 Minuten

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.

it-ninja info
Wenn du die bisherigen Aufgaben anschaust, welche du gelöst hast, wirst du feststellen, dass dort deine Anpassungen immer in einem benannten CodeBlock war. Du hast also schon die ganze Zeit Methoden angepasst und benutzt.

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:

1
2
3
Rückgabetyp methodName(Parameterliste) {
    // Anweisungen
}
  • Rückgabetyp: Gibt an, welcher Datentyp zurückgegeben wird (int, String, …). Wird nichts zurückgegeben, nutzt man void.
  • 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:

1
2
3
void greetUser(String name) {
    System.out.println("Hallo, " + name + "!");
}

Diese Methode erhält einen String-Parameter name und gibt eine Begrüssung aus.

it-ninja video
Lernvideo

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:

1
2
3
int add(int a, int b) {
    return a + b;
}

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.

1
2
3
void greet() {
    System.out.println("Hallo!");
}

Du kannst diese Methode so aufrufen:

1
greet();

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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args) {
    Random random = new Random();

    int a = random.nextInt(11);
    int b = random.nextInt(11);
    int c = random.nextInt(11);

    if (b != 0) {
        int result1 = a / b;
        if (c != 0) {
            int result2 = result1 / c;
            System.out.println("Ergebnis: " + result2);
        } else {
            System.out.println("Division durch 0 nicht erlaubt.");
        }
    } else {
        System.out.println("Division durch 0 nicht erlaubt.");
    }
}

⚠️ Gleicher Code mehrfach und verschachtelte Blöcke → schlecht wartbar.

Beispiel: Division mit Methoden

Eleganter und übersichtlicher mit einer Methode:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
public static void main(String[] args) {
    Random random = new Random();

    int a = random.nextInt(11);
    int b = random.nextInt(11);
    int c = random.nextInt(11);

    int result1 = divide(a, b);
    int result2 = divide(result1, c);

    System.out.println("Ergebnis: " + result2);
}

public static int divide(int numerator, int denominator) {
    if (denominator == 0) {
        System.out.println("Division durch 0 nicht erlaubt.");
        return 0;
    }
    return numerator / denominator;
}

✅ 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:

1
2
3
void calculateTaxes(double income) { ... }
String formatDate(LocalDate date) { ... }
void printReport(String title, int pageCount) { ... }
it-ninja info
Die Regeln zur Benennung von Methoden und Parametern sind Teil unserer Coding Guidelines. Du findest die vollständige Richtlinie für Java hier.

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)

1
2
3
4
int factorial(int n) {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
}

Ablauf bei factorial(3):

1
2
3
4
→ factorial(3)
→ 3 * factorial(2)
→ 3 * 2 * factorial(1)
→ 3 * 2 * 1 → ergibt 6
it-ninja tip

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.


it-ninja video
Lernvideo

Wenn du dir die Erklärung noch mit einem Video anschauen möchtest, empfehlen wir dir dieses Video (YouTube, Methoden mit Rückgabewert).


task Jetzt bist du dran. Löse bitte die folgenden Aufgaben in den Labs.


Zuletzt geändert July 26, 2025: Update Methods module (58bb044e3)