SemaTrain Logo Ein Fachportal des SemaTrain Trainingsinstituts

Methoden & Parameter

Sie strukturieren Ihren Code: Methoden, Parameter, Rückgabewerte – damit Logik wiederverwendbar, testbar und lesbar wird (kursnah im SemaTrain-Kontext).

Hinweis: Beispiele nutzen Beispieldaten (didaktisch, nicht verbindlich).

Java Grundlagen Schulung – Kursbezug

Dieses Kapitel ist Teil des Lernpfads zur Java Grundlagen Schulung. Termine & Buchung laufen über SemaTrain.de.

Hinweis: Beispiele sind generisch und nutzen Beispieldaten.

Ziel dieses Kapitels: Sie kapseln Logik in Methoden, übergeben Daten per Parameter und erhalten Ergebnisse über Rückgabewerte. Ergebnis: weniger Copy-Paste, mehr Struktur.

Worum geht’s?

Lehr-Lernziele

Nach diesem Kapitel können Sie …

Wie Sie die Ziele erreichen: Die Beispiele zeigen Methoden in kleinen, testbaren Einheiten (LZ1–LZ3). Das Quiz prüft Begriffe/Unterschiede (LZ1–LZ4). Das Mini-Projekt zwingt Sie, Regeln und Ausgabe in Methoden zu zerlegen (LZ1–LZ3) und optional Overloading einzubauen (LZ4).

Grundform einer Methode

Beispiel: Rückgabewert vs. void (LZ1 + LZ2) (Java)
public class MethodenGrundform {

  // Rückgabewert: int
  static int addiere(int a, int b) {
    return a + b;
  }

  // void: gibt nur aus
  static void druckeTitel(String titel) {
    System.out.println("=== " + titel + " ===");
  }

  public static void main(String[] args) {
    druckeTitel("Methoden-Check");
    int summe = addiere(2, 3);
    System.out.println("Summe: " + summe);
  }
}

Kursnahe Beispiele (SemaTrain-Kontext)

Wir kapseln typische Regeln (Format/Ort/Rabatt) in Methoden, damit das Main kurz bleibt.

Beispiel: Logik in Methoden kapseln (LZ1–LZ3) (Java)
public class KursMethodenBeispiel {

  static boolean istOnline(String format) {
    return format != null && format.equals("Online");
  }

  static String ortFuerAusgabe(String format, String ort) {
    return istOnline(format) ? "remote" : ort;
  }

  static double berechneEndpreis(double preis, boolean rabattAktiv) {
    double rabatt = rabattAktiv ? 0.10 : 0.0;  // Beispielregel
    return preis * (1 - rabatt);
  }

  static void druckeKursZeile(String kursName, String format, String ort, int dauerTage, double endpreis) {
    System.out.println(
      "Kurs: " + kursName +
      " | Format: " + format +
      " | Ort: " + ort +
      " | Dauer: " + dauerTage + " Tage" +
      " | Preis (Beispiel): " + endpreis + " €"
    );
  }

  public static void main(String[] args) {
    // Beispielwerte
    String kursName = "Java Grundlagen Schulung";
    String format = "Online";
    String ort = "Hamburg";
    int dauerTage = 3;
    double preis = 1490.00;

    String ortAusgabe = ortFuerAusgabe(format, ort);
    boolean rabattAktiv = istOnline(format) && dauerTage >= 3; // Beispielregel
    double endpreis = berechneEndpreis(preis, rabattAktiv);

    druckeKursZeile(kursName, format, ortAusgabe, dauerTage, endpreis);
  }
}

Overloading (Methoden-Überladung)

Gleicher Name, aber andere Parameterliste. Sinnvoll, wenn die Bedeutung gleich bleibt.

Beispiel: Overloading (LZ4) (Java)
public class OverloadingBeispiel {

  static double berechneEndpreis(double preis) {
    return preis; // kein Rabatt
  }

  static double berechneEndpreis(double preis, double rabattProzent) {
    return preis * (1 - rabattProzent);
  }

  public static void main(String[] args) {
    double preis = 1490.00;

    System.out.println(berechneEndpreis(preis));          // 1490.00
    System.out.println(berechneEndpreis(preis, 0.10));    // 10% Rabatt
  }
}

Praxisaufgabe (Mini)

Sie bauen einen „Kurs-Rechner“ und zerlegen die Aufgaben konsequent in Methoden.

Beitrag zu den Lehr-Lernzielen: LZ1 (Methoden definieren/aufrufen), LZ2 (void vs. Rückgabewert), LZ3 (Regeln/Validierung kapseln), optional LZ4 (Overloading für Preisberechnung).

  1. Schreiben Sie boolean istOnline(String format).
  2. Schreiben Sie String ortFuerAusgabe(String format, String ort).
  3. Schreiben Sie double berechneEndpreis(double preis, boolean rabattAktiv) (Rabatt: 10% als Beispielregel).
  4. Schreiben Sie void druckeKurs(...) für die Ausgabe.
  5. Bonus: Overloading: berechneEndpreis(double preis) (ohne Rabatt).
Lösung anzeigen
Lösung: Kurs-Rechner mit Methoden (LZ1–LZ4, Beispielwerte) (Java)
public class KursRechner {

  static boolean istOnline(String format) {
    return format != null && format.equals("Online");
  }

  static String ortFuerAusgabe(String format, String ort) {
    return istOnline(format) ? "remote" : ort;
  }

  static double berechneEndpreis(double preis, boolean rabattAktiv) {
    double rabatt = rabattAktiv ? 0.10 : 0.0; // Beispielregel
    return preis * (1 - rabatt);
  }

  // Bonus (LZ4): Overloading
  static double berechneEndpreis(double preis) {
    return preis;
  }

  static void druckeKurs(String kursName, String format, String ort, int dauerTage, double endpreis) {
    System.out.println(
      "Kurs: " + kursName +
      " | Format: " + format +
      " | Ort: " + ort +
      " | Dauer: " + dauerTage + " Tage" +
      " | Preis (Beispiel): " + endpreis + " €"
    );
  }

  public static void main(String[] args) {
    // Beispielwerte
    String kursName = "Java Grundlagen Schulung";
    String format = "Online";
    String ort = "Hamburg";
    int dauerTage = 3;
    double preis = 1490.00;

    String ortAusgabe = ortFuerAusgabe(format, ort);
    boolean rabattAktiv = istOnline(format) && dauerTage >= 3;

    // entweder mit Flag ...
    double endpreis = berechneEndpreis(preis, rabattAktiv);

    // ... oder Bonus-Overloading nutzen:
    // double endpreis = rabattAktiv ? berechneEndpreis(preis, 0.10) : berechneEndpreis(preis);

    druckeKurs(kursName, format, ortAusgabe, dauerTage, endpreis);
  }
}
Optional: typische Stolperfallen
  • Zu große main(): Logik in kleine Methoden auslagern (eine Aufgabe pro Methode).
  • Unklare Parameter: sprechende Namen, richtige Reihenfolge, lieber mehrere kleine Methoden.
  • null: bei Strings defensiv prüfen (format != null), bevor equals() aufgerufen wird.
  • Overloading übertreiben: nur nutzen, wenn die Bedeutung wirklich gleich bleibt.

Kurz-Takeaways

Primärreferenzen

Geprüfte Java-Referenzen

Die fachlichen Aussagen dieser Lektion werden gegen zuständige Primärreferenzen geprüft. Erklärungen, Beispiele, Aufgaben, Quizfragen und Lösungen sind eigenständige SemaTrain-Inhalte.

Lektionsprofil: Methoden, Parameter und Overloading

Kursbasis: JDK 25 LTS

Feature-Release zum Prüfdatum: Java SE / JDK 27

Quellenprüfung: 2026-09-17

Einordnung: Aussagen zur Syntax und Semantik von Methoden werden durch die JLS geprüft. Empfehlungen zu Methodengröße, Benennung und Struktur sind SemaTrain-Fachleitlinien.

Java Platform, Standard Edition & JDK Specifications Version 25

Quellentyp: Primärspezifikation

Verantwortliche Referenzstelle: Oracle – Java SE

Versionsbezug: Java SE 25 / JDK 25

Geltungsbereich: Java-Sprache, JVM, Java-SE-Plattform und JDK-Spezifikationen.

Offizielle Primärreferenz

JDK 25 Documentation

Quellentyp: Herstellerdokumentation

Verantwortliche Referenzstelle: Oracle

Versionsbezug: JDK 25

Geltungsbereich: Offizielle JDK-API, Werkzeuge und Plattformfunktionen.

Offizielle Primärreferenz

Oracle Java SE Support Roadmap

Quellentyp: Hersteller-Roadmap

Verantwortliche Referenzstelle: Oracle

Versionsbezug: Prüfstand 17.09.2026

Geltungsbereich: Einordnung von LTS- und Feature-Releases.

Offizielle Primärreferenz

Java Language and Virtual Machine Specifications

Quellentyp: Primärspezifikation

Verantwortliche Referenzstelle: Oracle – Java SE

Versionsbezug: Java SE 27 / 26 / 25

Geltungsbereich: Offizieller Versionsindex der Java-Sprach- und JVM-Spezifikationen.

Offizielle Primärreferenz

JLS 25 – Chapter 8: Classes

Quellentyp: Primärspezifikation

Verantwortliche Referenzstelle: Oracle – Java SE

Versionsbezug: Java SE 25

Geltungsbereich: Methodendeklarationen, Parameter, Rückgabetypen und Overloading.

Offizielle Primärreferenz

Java Quellen und Methodik

Quiz: Methoden & Parameter

1. Was ist ein typischer Vorteil von Methoden? (LZ1)

2. Was bedeutet der Rückgabetyp void? (LZ2)

3. Welche Signatur passt zu „Ort abhängig vom Format“? (LZ3)

4. Was beschreibt Overloading korrekt? (LZ4)

Praxisaufgabe

Mini-Projekt: Kurs-Service (Methoden statt Copy-Paste)

Sie bauen eine kleine „Service-Schicht“ als Methoden: Format prüfen, Ort bestimmen, Preis berechnen, Ausgabe drucken.

Beitrag zu den Lehr-Lernzielen:
LZ1 (Methoden definieren/aufrufen), LZ2 (void vs. Rückgabe), LZ3 (Regeln kapseln), optional LZ4 (Overloading).

Aufgabe

Lösung anzeigen
Lösung: Kurs-Service (Methoden + optional Overloading) (Java)
public class KursService {

  static boolean istOnline(String format) {
    return format != null && format.equals("Online");
  }

  static String ortFuerAusgabe(String format, String ort) {
    return istOnline(format) ? "remote" : ort;
  }

  static double berechneEndpreis(double preis, boolean rabattAktiv) {
    double rabatt = rabattAktiv ? 0.10 : 0.0; // Beispiel
    return preis * (1 - rabatt);
  }

  // Bonus: Overloading (LZ4)
  static double berechneEndpreis(double preis, double rabattProzent) {
    return preis * (1 - rabattProzent);
  }

  static void druckeKurs(String kursName, String format, String ort, int dauerTage, double endpreis) {
    System.out.println(
      "Kurs: " + kursName +
      " | Format: " + format +
      " | Ort: " + ort +
      " | Dauer: " + dauerTage + " Tage" +
      " | Preis (Beispiel): " + endpreis + " €"
    );
  }

  public static void main(String[] args) {
    // Beispielwerte
    String kursName = "Java Grundlagen Schulung";
    String format = "Online";
    String ort = "Hamburg";
    int dauerTage = 3;
    double preis = 1490.00;

    boolean rabattAktiv = istOnline(format) && dauerTage >= 3;
    String ortAusgabe = ortFuerAusgabe(format, ort);

    double endpreis = berechneEndpreis(preis, rabattAktiv);
    // Alternative Bonus:
    // double endpreis = rabattAktiv ? berechneEndpreis(preis, 0.10) : preis;

    druckeKurs(kursName, format, ortAusgabe, dauerTage, endpreis);
  }
}

SemaTrain Trainingsinstitut

Java praktisch vertiefen

Diese Wissenslektion ist Bestandteil des SemaTrain-Java-Lernpfads. Das begleitete Training ergänzt Wissen durch Programmierpraxis, Feedback und Transfer.

Zum Java Trainingscenter Quellen und Methodik