Methods
Kurz: Eine benannte, wiederverwendbare Codeeinheit innerhalb einer Klasse — definiert einen Rückgabetyp, einen Namen und optional Parameters.
Genauer: Signatur-Aufbau: Zugriffsmodifier Rückgabetyp name(Parameter) { ... }, z. B. public int summe(int a, int b) { return a + b; }. Gibt eine Methode nichts zurück, steht dort void statt eines konkreten Typs.
Im Detail
public class Rechner {
// public: von überall aufrufbar | int: Rückgabetyp | (int a, int b): Parameter
public int summe(int a, int b) {
return a + b; // return beendet die Methode sofort und liefert den Wert
}
// void: gibt nichts zurück - "return;" (ohne Wert) ist trotzdem erlaubt, um früh abzubrechen
public void begruesse(String name) {
if (name == null || name.isBlank()) {
System.out.println("Kein Name angegeben");
return; // frühzeitiger Abbruch, kein Wert
}
System.out.println("Hallo, " + name);
}
// static: gehört zur Klasse, nicht zu einer Instanz - aufrufbar ohne "new Rechner()"
public static int quadrat(int x) {
return x * x;
}
}
int erg = new Rechner().summe(3, 4); // Instanzmethode - braucht ein Objekt
int q = Rechner.quadrat(5); // statische Methode - direkt über den KlassennamenDer Unterschied zwischen Instanzmethoden und static-Methoden ist grundlegend: eine Instanzmethode arbeitet implizit mit dem Zustand EINES konkreten Objekts (sie kann auf dessen Felder zugreifen, über das unsichtbare this), eine static-Methode gehört der Klasse als Ganzes und hat KEINEN Zugriff auf Instanzfelder, weil sie ja ohne jedes konkrete Objekt aufgerufen werden kann. Eine Methode mit void als Rückgabetyp darf trotzdem ein einsames return; (ohne Wert) enthalten, um vorzeitig aus der Methode auszusteigen — üblich bei Guard Clauses (frühe Validierungsprüfungen am Methodenanfang), die verschachtelte if-Strukturen vermeiden.
Siehe auch: Parameters, void, Overloading, Classes