Statische Variable in Java
- Statische Variablen
- Statische Methoden
- Statische Codeblöcke.
Schauen wir uns zunächst statische Variablen und statische Methoden an.
Was ist eine statische Variable in Java?
Statische Variable in Java ist eine Variable, die zur Klasse gehört und nur einmal zu Beginn der Ausführung initialisiert wird. Es handelt sich um eine Variable, die zur Klasse und nicht zum Objekt (Instanz) gehört. Statische Variablen werden nur einmal zu Beginn der Ausführung initialisiert. Diese Variablen werden zuerst initialisiert, bevor Instanzvariablen initialisiert werden.
- Eine einzelne Kopie, die von allen Instanzen der Klasse gemeinsam genutzt werden soll
- Auf eine statische Variable kann direkt über den Klassennamen zugegriffen werden und es ist kein Objekt erforderlich
Syntax:
<class-name>.<variable-name>
Was ist die statische Methode in Java?
Statische Methode in Java ist eine Methode, die zur Klasse und nicht zum Objekt gehört. Eine statische Methode kann nur auf statische Daten zugreifen. Es handelt sich um eine Methode, die zur Klasse und nicht zum Objekt (Instanz) gehört. Eine statische Methode kann nur auf statische Daten zugreifen. Es kann nicht auf nicht statische Daten zugegriffen werden (Instanzvariablen).
- Eine statische Methode kann nur andere statische Methoden aufrufen und keine nicht statische Methode daraus aufrufen.
- Auf eine statische Methode kann direkt über den Klassennamen zugegriffen werden und benötigt kein Objekt
- Eine statische Methode kann ohnehin nicht auf die Schlüsselwörter „this“ oder „super“ verweisen
Syntax:
<class-name>.<method-name>
Hinweis: Die Hauptmethode ist statisch, da sie für die Ausführung einer Anwendung zugänglich sein muss, bevor eine Instanziierung stattfindet.
Lernen wir die Nuancen der statischen Schlüsselwörter anhand einiger Übungen kennen!
Beispiel: So rufen Sie statische Variablen und Methoden auf
Schritt 1) Kopieren Sie den folgenden Code in einen Editor
public class Demo{ public static void main(String args[]){ Student s1 = new Student(); s1.showData(); Student s2 = new Student(); s2.showData(); //Student.b++; //s1.showData(); } } class Student { int a; //initialized to zero static int b; //initialized to zero only when class is loaded not for each object created. Student(){ //Constructor incrementing static variable b b++; } public void showData(){ System.out.println("Value of a = "+a); System.out.println("Value of b = "+b); } //public static void increment(){ //a++; //} }
Schritt 2) Speichern und kompilieren Sie den Code. Führen Sie den Code aus als: Java-Demo.
Schritt 3) Die erwartete Ausgabe wird unten angezeigt
Das folgende Diagramm zeigt, wie Referenzvariablen und -objekte erstellt werden und wie auf statische Variablen von den verschiedenen Instanzen zugegriffen wird.
Schritt 4) Mithilfe der Syntax ist es möglich, von außerhalb der Klasse auf eine statische Variable zuzugreifen Klassenname.Variablenname. Kommentieren Sie Zeile 7 und 8 aus. Speichern, kompilieren und ausführen. Beobachten Sie die Ausgabe.
Value of a = 0 Value of b = 1 Value of a = 0 Value of b = 2 Value of a = 0 Value of b = 3
Schritt 5) Kommentieren Sie die Zeilen 25,26 und 27 aus. Speichern, kompilieren und ausführen.
error: non-static variable a cannot be referenced from a static context a++;
Schritt 6) Fehler = ? Dies liegt daran, dass kein Zugriff auf die Instanzvariable „a„aus der statischen Java-Klassenmethode“Zuwachs".
Was ist statischer Block in Java?
Die statischer Block ist ein Anweisungsblock innerhalb eines Java Klasse, die ausgeführt wird, wenn eine Klasse zum ersten Mal in das JVMherunterzuladen. Ein Der statische Block hilft bei der Initialisierung der statischen Datenelemente, genau wie Konstruktoren dabei helfen, Instanzmitglieder zu initialisieren.
class Test{ static { //Code goes here } }
Das folgende Programm ist ein Beispiel für einen statischen Java-Block.
Beispiel: So greifen Sie auf einen statischen Block zu
public class Demo { static int a; static int b; static { a = 10; b = 20; } public static void main(String args[]) { System.out.println("Value of a = " + a); System.out.println("Value of b = " + b); } }
Sie erhalten die folgende Ausgabe des Programms.
Value of a = 10 Value of b = 20