Static: Unterschied zwischen den Versionen

Aus EINI
Wechseln zu: Navigation, Suche
K
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:
  
  
'''Statische Methoden''' werden nicht auf einem [[Objekt aufgerufen]] und besitzen daher keinen an ein Objekt gebundenen Kontext.
+
'''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 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.
 
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 [[Variable#Attributvariable| 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 [[Nebeneffekt|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.
 
'''Statische Attribute''' gelten, anders als nicht-statische [[Variable#Attributvariable| 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 [[Nebeneffekt|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.
 
Statische Methoden sollten daher sehr allgemeine Programme repräsentieren, die nicht abhängig von einem globalen Zustand sind.
 
  
 
=Beispiel=
 
=Beispiel=
 
+
Funktionen wie Sinus oder Kosinus sind statische Methoden der Klasse <code>Math</code>. 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 <code>Math</code>-Objekt zu erstellen, um dieses die Sinus- bzw. Kosinus-Berechnung durchführen zu lassen, nur um es danach nicht mehr zu benötigen.
Funktionen wie der Sinus oder Kosinus sind statische Methoden der Klasse <code>Math</code>. Diese benötigt für die Berechnung dieser Werte keine weiteren Informationen. Es wäre unnötig aufwändig, ein <code>Math</code>-Objekt zu erstellen, um dieses die Sinus- bzw. Kosinus-Berechnung durchführen zu lassen, nur um es danach nicht mehr zu benötigen.
+

Aktuelle Version vom 19. Oktober 2016, 17:57 Uhr

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.