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]] | ||
Aktuelle Version vom 6. März 2026, 11:05 Uhr
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)!
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 main(). Für den Fall, dass Sie BlueJ als Entwicklungsumgebung einsetzen, wird die main-Methode im Hintergrund von BlueJ erzeugt. Die Methode main() muss die Signatur public static void main(String[] args) 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
String args[]geschrieben werden darf, ist ein Array, das die vom Aufruf entgegen genommenen Kommandozeilenparameter enthält.
Syntax
Aufruf von statischen 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
Statische Variablen und Methoden
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!
}
}
Beispiel zur main-Methode
public class MainClass {
public static void main(String[] args){
System.out.println("Ausgabe aus der main()-Methode");
}
}