Static: Unterschied zwischen den Versionen
Thomas (Diskussion | Beiträge) Die Seite wurde neu angelegt: „== 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 aufru…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 3: | Zeile 3: | ||
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)! | 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)! | ||
== Die main-Methode == | |||
Damit die Java Virtual Machine "weiß", wo die Ausführung eines Programmes anfangen soll, muss eine besondere Methode in einer Klasse angelegt werden. Die Deklaration dieser Methode folgt dabei speziellen Regeln, so dass sie von der Java Virtual Machine leicht gefunden werden kann. Jede Java-Anwendung besitzt eine Methode <code>main()</code>. Für den Fall, dass Sie BlueJ als Entwicklungsumgebung einsetzen, wird die main-Methode im Hintergrund von BlueJ erzeugt. Die Methode <code>main()</code> muss die Signatur <code>public static void main(String[] args)</code> besitzen. | |||
* '''public''' weil von außerhalb der Klasse auf sie zugegriffen wird. | |||
* '''static''' weil sie aufgerufen wird ohne dass vorher ein Objekt einer Klasse gebildet wurde. | |||
* '''void''' weil sie keinen Rückgabewert besitzt. | |||
* der Parameter '''String[] args''', der auch <code>String args[]</code> geschrieben werden darf, ist ein Array, das die vom Aufruf entgegen genommenen Kommandozeilenparameter enthält. | |||
== Syntax == | == Syntax == | ||
=== Aufruf von | === Aufruf von statischen Attributen und Methoden === | ||
Klassenname.Variablenname | Klassenname.Variablenname | ||
| Zeile 25: | Zeile 33: | ||
== Beispiele == | == Beispiele == | ||
=== Statische Variablen und Methoden === | |||
<syntaxhighlight lang="Java"> | <syntaxhighlight lang="Java"> | ||
public static double mehrwertsteuersatz=19; | public static double mehrwertsteuersatz=19; | ||
public static double berechneBruttoBetrag(double preis){return mehrwertsteuersatz*preis/100} | public static double berechneBruttoBetrag(double preis){return mehrwertsteuersatz*preis/100;} | ||
public class Beispiel { | public class Beispiel { | ||
int nichtStatisch = 10; // Nicht-statisches Attribut | int nichtStatisch = 10; // Nicht-statisches Attribut | ||
public static void main(String[] args) { | |||
// System.out.println(nichtStatisch); // Compiler-Fehler! | // Direkt auf 'nichtStatisch' zugreifen (NICHT ERLAUBT): | ||
// System.out.println(nichtStatisch); // Compiler-Fehler! | |||
// Objekt erstellen und auf 'nichtStatisch' zugreifen (ERLAUBT): | // Objekt erstellen und auf 'nichtStatisch' zugreifen (ERLAUBT): | ||
Beispiel objekt = new Beispiel(); | |||
System.out.println(objekt.nichtStatisch); // Funktioniert! | |||
} | |||
} | } | ||
</syntaxhighlight> | |||
} </syntaxhighlight> | === Beispiel zur main-Methode === | ||
<syntaxhighlight lang="Java"> | |||
public class MainClass { | |||
public static void main(String[] args){ | |||
System.out.println("Ausgabe aus der main()-Methode"); | |||
} | |||
} | |||
</syntaxhighlight> | |||
[[Kategorie:Programmierung]] | [[Kategorie:Programmierung]] | ||