Static

Aus FLBK-Wiki
Zur Navigation springen Zur Suche springen

Einführung

Klassen definieren die Attribute und die Methoden ihrer Instanzen/Objekte. Neben "normalen" Attributen und Methoden gibt es in objektorientierten Programmiersprachen noch statische (englisch static) Attribute und Methoden. Um statische Methoden und Attribute aufzurufen, benötigt man keine Instanz der Klasse. Man kann sie direkt über den Klassennamen aufrufen. Dies macht dann Sinn, wenn man Eigenschaften oder Verhalten eines Programms nicht an ein Objekt koppeln möchte, sondern diese allgemeingültig definiert werden sollen.

Innerhalb von statischen Methoden können keine nicht statischen Attribute verwenden werden, da dies wieder eine Instanziierung eines Objektes der Klasse voraussetzen würde. Denn nicht statische Attribute existieren nur in Zusammenhang mit einem Objekt (siehe auch Beispiel unten)!

Syntax

Aufruf von statische Attributen und Methoden

Klassenname.Variablenname

Klassenname.Methodenname + Eingabeparameter

Beispiel:

Math.PI

Math.sin(15.5)

Implementierung von statischen Attributen und Methoden

Sichtbarkeit + Schlüsselwort static + Datentyp + Attributname

Sichtbarkeit

+ Schlüsselwort static + Rückgabeparameter + Methodenname + Eingabeparameter

Beispiele

public static double mehrwertsteuersatz=19;

public static double berechneBruttoBetrag(double preis){return mehrwertsteuersatz*preis/100}


public class Beispiel { 

int nichtStatisch = 10; // Nicht-statisches Attribut 

public static void main(String[] args) { 

// Direkt auf 	'nichtStatisch' zugreifen (NICHT ERLAUBT): 

// System.out.println(nichtStatisch); // Compiler-Fehler! 

// Objekt erstellen und auf 'nichtStatisch' zugreifen (ERLAUBT): 

Beispiel objekt = new Beispiel(); 

System.out.println(objekt.nichtStatisch); // Funktioniert! 

} 

}