Video: Die Schlüsselwörter »static« und »this« - Einstieg in Java 2024
In Java ist ein static -Member ein Member einer Klasse, die keiner Instanz von eine Klasse. Stattdessen gehört das Mitglied zur Klasse selbst. Als Ergebnis können Sie auf das statische Member zugreifen, ohne zuerst eine Klasseninstanz zu erstellen.
Die beiden Arten von statischen Elementen sind statische Felder und statische Methoden:
-
Statisches Feld: Ein Feld, das mit dem Schlüsselwort static wie folgt deklariert ist:
private statische int ballCount;
Die Position des statischen Schlüsselworts ist mit den Positionen der Sichtbarkeitsschlüsselwörter (privat und öffentlich sowie geschützt) austauschbar. Infolgedessen funktioniert auch die folgende Anweisung:
static private int ballCount;
Als Konvention neigen die meisten Programmierer dazu, das Sichtbarkeits-Schlüsselwort zuerst anzugeben.
Der Wert eines statischen Feldes ist in allen Instanzen der Klasse gleich. Mit anderen Worten, wenn eine Klasse ein statisches Feld mit dem Namen CompanyName hat, haben alle aus der Klasse erstellten Objekte den gleichen Wert für CompanyName.
Statische Felder werden beim ersten Laden der Klasse erstellt und initialisiert. Das passiert, wenn auf ein statisches Mitglied der Klasse verwiesen wird oder wenn eine Instanz der Klasse erstellt wird, je nachdem, was zuerst eintritt.
-
Statische Methode: Eine Methode, die mit dem Schlüsselwort static deklariert wurde. Wie statische Felder sind statische Methoden mit der Klasse selbst verbunden, nicht mit einem bestimmten aus der Klasse erstellten Objekt. Daher müssen Sie kein Objekt aus einer Klasse erstellen, bevor Sie statische Methoden verwenden können, die von der Klasse definiert werden.
Die bekannteste statische Methode ist main, die von der Java-Laufzeit aufgerufen wird, um eine Anwendung zu starten. Die Hauptmethode muss statisch sein. Dies bedeutet, dass Anwendungen standardmäßig in einem statischen Kontext ausgeführt werden.
Eine der grundlegenden Regeln für die Arbeit mit statischen Methoden ist, dass Sie nicht auf eine nicht statische Methode oder ein nicht statisches Feld zugreifen können, da die statische Methode keine Instanz der Klasse hat, die zum Referenzieren von Instanzmethoden oder Feldern verwendet werden kann…