Statische Variable in Java:Was ist statischer Block &Methode [Beispiel]
Die Statik kann sein:
- Statische Variablen
- Statische Methoden
- Statische Codeblöcke.
Schauen wir uns zuerst 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 ist eine Variable, die zur Klasse gehört und nicht zum Objekt (Instanz). Statische Variablen werden nur einmal zu Beginn der Ausführung initialisiert. Diese Variablen werden zuerst initialisiert, bevor irgendwelche Instanzvariablen initialisiert werden.
- Eine einzelne Kopie, die von allen Instanzen der Klasse geteilt wird
- Auf eine statische Variable kann direkt über den Klassennamen zugegriffen werden und benötigt kein Objekt
Syntax:
<class-name>.<variable-name>
Was ist eine 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 ist eine Methode, die zur Klasse gehört und nicht zum Objekt (Instanz). Eine statische Methode kann nur auf statische Daten zugreifen. Es kann nicht auf nicht statische Daten (Instanzvariablen) zugreifen.
- Eine statische Methode kann nur andere statische Methoden aufrufen und kann keine nicht-statische Methode von ihr aufrufen.
- Auf eine statische Methode kann direkt über den Klassennamen zugegriffen werden und benötigt kein Objekt
- Eine statische Methode kann auf keinen Fall auf die Schlüsselwörter „this“ oder „super“ verweisen
Syntax:
<class-name>.<method-name>
Hinweis: Die Hauptmethode ist statisch, da sie für eine Anwendung zugänglich sein muss, damit sie ausgeführt werden kann, bevor eine Instanziierung stattfindet.
Lassen Sie uns die Nuancen der statischen Keywords lernen, indem wir einige Übungen machen!
Beispiel:Wie man statische Variablen und Methoden aufruft
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 als Java-Demo aus .
Schritt 3) Die erwartete Ausgabe wird unten angezeigt
Das folgende Diagramm zeigt, wie Referenzvariablen und Objekte erstellt werden und auf statische Variablen von den verschiedenen Instanzen zugegriffen wird.
Schritt 4) Mit der Syntax Klassenname.Variablenname ist es möglich, von außerhalb der Klasse auf eine statische Variable zuzugreifen . Entkommentieren Sie Zeile 7 &8 . 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 Zeile 25,26 &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 auf die Instanzvariable „a nicht zugegriffen werden kann ” aus der statischen Java-Klassenmethode “inkrement „.
Was ist statischer Block in Java?
Der statische Block ist ein Anweisungsblock innerhalb einer Java-Klasse, der ausgeführt wird, wenn eine Klasse zum ersten Mal in die JVM geladen wird. Ein statischer Block hilft bei der Initialisierung der statischen Datenelemente , genau wie Konstruktoren helfen, Instanzmitglieder zu initialisieren.
class Test{ static { //Code goes here } }
Das folgende Programm ist das Beispiel eines statischen Java-Blocks.
Beispiel:Zugriff auf statischen Block
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 folgende Ausgabe des Programms.
Value of a = 10 Value of b = 20
Java