Helmichs Informatik-Lexikon

static (Methoden)

Wird eine Methode einer Klasse als static bezeichnet:

public static int getAnzahl()

so können andere Objekte bzw. Klassen diese Methode aufrufen, ohne dass sie vorher ein Objekt der Klasse anlegen müssen. Statische Methoden sind uns eigentlich von der Klasse Math her bekannt. In einem Java-Quelltext können wir zum Beispiel eine double-Zahl d runden, indem wir schreiben:

int i = Math.round(d);

Eigentlich hätten wir ja erst ein Objekt der Klasse Math anlegen müssen:

Math mathe = new Math();

um dann zu schreiben:

int i = mathe.round(d);

Das ist bei statischen Methoden nicht erforderlich; hier kann man einfach den Klassenbezeichner hinschreiben und dann - getrennt durch einen Punkt - den Methodenbezeichner mit eventuellen Parametern.

Statische Methoden und statische Attribute

Ähnlich wie statische Attribute sind statische Methoden aber bei allen Objekten der Klasse gleich. Das heißt vor allem: Statische Methoden können nicht auf Attribute zugreifen, die ihrerseits nicht statisch sind.

Beispiel 1

Angenommen, die Methode getAnzahl greift auf ein Attribut anzahl zu, das nicht als statisch deklariert wurde. Dann kann sich der Wert von anzahl bei jedem Objekt der Klasse unterscheiden, bei einem Objekt hat anzahl den Wert 3, bei einem anderen Objekt den Wert 7.

Was soll nun passieren, wenn die statische Methode getAnzahl aufgerufen wird. Welchen Wert soll die Methode zurückgeben; den des Objektes mit dem Wert 3, oder den des Objektes mit dem Wert 7? Statische Methoden funktionieren nur mit statischen Attributen. Wäre das Attribut anzahl ein statisches Attribut, so hätte es bei jedem Objekt der Klasse den gleichen Wert. Die statische Methode getAnzahl hätte dann keine Probleme, den richtigen Wert zurückzugeben.

Beispiel 2

Ein zweites Beispiel für den Einsatz statischer Methoden finden Sie in dem Abschnitt "Bubblesort" in der Folge 8 des EF-Kurses.