Static

Aus EINI
Wechseln zu: Navigation, Suche

Das Schlüsselwort static dient in Java als Modifikator für Attribute und Methoden.


Statische Methoden werden nicht auf einem Objekt aufgerufen und besitzen daher keinen an ein Objekt gebundenen Kontext. Eine statische Methode kann deshalb auch keine nicht-statischen Attribute der Klasse direkt ansprechen oder nicht-statische Methoden der Klasse direkt aufrufen. Hierzu wird immer eine im statischen Kontext nicht vorliegende Objektinstanz benötigt. Eine statische Methode kann daher nur andere statische Methoden aufrufen oder statische Attribute verändern.

Statische Methoden sollten sehr allgemeine Programme repräsentieren, die nicht abhängig von einem globalen Zustand sind.


Statische Attribute gelten, anders als nicht-statische Objektattribute, für die Klasse selbst. Daher hat jede Änderung direkten Einfluss auf den Wert eines statischen Attributes. Dies führt sehr schnell zu sogenannten Nebeneffekten, die den Zustand des Programms nicht mehr nachvollziehbar ändern und das Lokalisieren und Beheben von Fehlern im Quellcode sehr schwierig machen. Aus diesem Grund wird häufig von statischen Attributen abgeraten.

Beispiel

Funktionen wie Sinus oder Kosinus sind statische Methoden der Klasse Math. Diese benötigt für die Berechnung der gesuchten Werte keine weiteren Informationen. Es wäre unnötig und viel zu aufwändig, extra ein Math-Objekt zu erstellen, um dieses die Sinus- bzw. Kosinus-Berechnung durchführen zu lassen, nur um es danach nicht mehr zu benötigen.