EMZETT.
Login

void

Kurz: Der Platzhalter-Rückgabetyp für Methoden, die keinen Wert zurückgeben — steht anstelle eines echten Typs wie int oder String im Methodenkopf.

Genauer: Eine void-Methode kann trotzdem ein leeres return; (ohne Wert) enthalten, um die Ausführung vorzeitig zu beenden. Anders als bei Methoden mit echtem Rückgabetyp kann der Aufruf einer void-Methode nicht als Wert in einem Ausdruck verwendet werden.

Im Detail

void begruessen(String name) {
    if (name == null || name.isEmpty()) {
        System.out.println("Kein Name angegeben");
        return; // beendet die Methode vorzeitig, OHNE einen Wert zurückzugeben
    }
    System.out.println("Hallo, " + name + "!");
}
 
// Fehler: void-Methode kann nicht als Ausdruck verwendet werden
// int ergebnis = begruessen("Anna"); // Compilerfehler

void ist streng genommen kein “echter” Datentyp wie int oder String — man kann keine Variable vom Typ void deklarieren, und der Rückgabewert einer void-Methode lässt sich nicht in einer Zuweisung oder einem Ausdruck verwenden, weil es schlicht keinen Wert gibt, der zurückkommt. Trotzdem darf eine void-Methode ein leeres return; (ohne nachfolgenden Wert) enthalten, um die Ausführung vorzeitig zu beenden, etwa nach einer frühen Fehlerprüfung wie im Beispiel oben (“Guard Clause”) — das unterscheidet sich von return wert; bei Methoden mit echtem Rückgabetyp.

void wird typischerweise für Methoden verwendet, deren Zweck ein Seiteneffekt ist (etwas ausgeben, etwas verändern, etwas speichern) statt eine Berechnung, deren Ergebnis der Aufrufer weiterverarbeiten will — Letzteres verlangt einen konkreten Rückgabetyp. Das spezielle Wrapper-Objekt Void (großgeschrieben, ein echtes Objekt) existiert zwar auch, wird aber fast ausschließlich in generischer Programmierung gebraucht, wenn ein Typparameter formal einen Typ verlangt, man aber eigentlich “nichts” ausdrücken will.

Siehe auch: Methods, void main