Statische Variable in Java

⚡ Intelligente Zusammenfassung

Statische Variable in Java Sie gehört zur Klasse und nicht zu einem einzelnen Objekt und wird beim Laden der Klasse einmalig initialisiert. Eine einzige gemeinsam genutzte Kopie dient allen Instanzen und ist direkt über den Klassennamen zugänglich, ohne dass ein Objekt erstellt werden muss.

  • 📦 Statische Variable: Gehört zur Klasse, teilt sich eine Kopie über alle Instanzen hinweg und wird einmalig beim Laden initialisiert.
  • ⚙️ Statische Methode: Gehört zur Klasse, kann nur auf statische Daten zugreifen und ignoriert this/super.
  • 🧱 Statische Blockierung: Wird einmal beim Laden der Klasse ausgeführt, um statische Datenmember zu initialisieren.
  • 🔗 Zugang: Statische Member können direkt über ClassName.member ohne Objekt aufgerufen werden.
  • ⛔ Beschränkung: Eine statische Methode kann nicht direkt auf nicht-statische (Instanz-)Variablen zugreifen.

Statische Variable in Java

Die Statik kann sein:

  1. Statische Variablen
  2. Statische Methoden
  3. Statische Blöcke von Code.

Schauen wir uns zunächst statische Variablen und statische Methoden an.

Was ist eine statische Variable in Java?

Statische Variable in Java Eine statische Variable gehört zur Klasse und wird nur einmalig zu Beginn der Ausführung initialisiert. Sie ist eine Variable, die zur Klasse und nicht zum Objekt (Instanz) gehört. Statische Variablen werden nur einmal, nämlich zu Beginn der Ausführung, initialisiert. Diese Variablen werden vor allen Instanzvariablen initialisiert.

  • 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


Java Statische Methoden und Variablen

Das folgende Diagramm zeigt, wie Referenzvariablen und -objekte erstellt werden und wie auf statische Variablen von den verschiedenen Instanzen zugegriffen wird.


Java Statische Methoden und Variablen

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?

Das 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

Häufig gestellte Fragen

Eine statische Variable gehört zur Klasse und existiert als gemeinsame Kopie für alle Objekte. Eine Instanzvariable gehört zu jedem Objekt und erhält pro Instanz eine separate Kopie, die bei der Objekterstellung initialisiert wird.

Nein. Eine statische Methode kann nur auf statische Daten und andere statische Methoden zugreifen. Der Zugriff auf eine nicht-statische (Instanz-)Variable aus einem statischen Kontext führt zu einem Kompilierfehler, da noch kein Objekt existiert.

Ein statischer Block wird einmalig ausgeführt, wenn die Klasse zum ersten Mal in die JVM geladen wird, bevor ein Objekt erstellt oder die main-Methode aufgerufen wird. Er dient zur Initialisierung statischer Datenmember.

KI kann analysieren, wie ein Feld oder eine Methode verwendet wird, und statische Werte empfehlen, wenn Daten von allen Instanzen gemeinsam genutzt werden oder kein Instanzstatus benötigt wird.ping Entwickler vermeiden unnötige Objekte und reduzieren den Speicherverbrauch.

Ja. KI-gestützte Analysen können veränderliche statische Zustände erkennen, die zu Problemen mit der Thread-Sicherheit, versteckten globalen Abhängigkeiten oder Schwierigkeiten beim Testen führen, und sicherere Alternativen wie Instanzfelder oder Dependency Injection vorschlagen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: