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: