GeeksforGeeks

Voraussetzung : statische Variablen, final Schlüsselwort

Statische Variable: Wenn der Wert einer Variablen nicht variiert, dann ist es keine gute Wahl, eine Instanzvariable zu wählen. Zu diesem Zeitpunkt können wir den statischen Modifikator zu dieser Variable hinzufügen. Wenn wir eine Variable als statisch deklarieren, wird auf Klassenebene eine einzelne Variable erstellt, die von den Objekten gemeinsam genutzt wird. Jede Änderung in dieser statischen Variable spiegelt sich in den Operationen der anderen Objekte wider. Wenn wir eine statische Variable nicht initialisieren, dann wird die JVM standardmäßig einen Standardwert für die statische Variable bereitstellen.

Aber wenn wir eine statische Variable mit finalem Modifikator deklarieren, sollten wir auf die folgenden Konventionen achten:

  • Variablen nur als statisch zu deklarieren, kann dazu führen, dass ihre Werte von einer oder mehreren Instanzen einer Klasse, in der sie deklariert ist, geändert werden.
  • Sie als statisch final zu deklarieren, hilft Ihnen, eine KONSTANTE zu erstellen. Es existiert nur eine Kopie der Variable, die nicht neu initialisiert werden kann.

Wichtige Punkte über finale statische Variablen:

  1. Initialisierung der Variablen Obligatorisch : Wenn die statische Variable als final deklariert ist, dann müssen wir die Initialisierung explizit durchführen, egal ob wir sie benutzen oder nicht, und JVM wird keinen Standardwert für die finale statische Variable bereitstellen.

    class Test {
    final static int x;
    public static void main(String args)
    {
    }
    }

    
    

    
    

    Ausgabe:

    error: variable x not initialized in the default constructor
  2. Initialisierung vor dem Laden der Klasse: Für endgültige statische Variablen ist es obligatorisch, dass wir die Initialisierung vor dem Abschluss des Ladens der Klasse durchführen. Wir können eine endgültige statische Variable zum Zeitpunkt der Deklaration initialisieren.

    class Test {
    final static int x = 10;
    public static void main(String args)
    {
    System.out.println(x);
    }
    }

    
    

    
    

Ausgabe:

10
  • Initialisierung innerhalb eines statischen Blocks : Wir können auch eine finale statische Variable innerhalb eines statischen Blocks initialisieren, weil wir eine finale statische Variable vor der Klasse initialisieren sollten und wir wissen, dass der statische Block vor der main() Methode ausgeführt wird.

    class Test {
    final static int x;
    static
    {
    x = 10;
    }
    public static void main(String args)
    {
    System.out.println(x);
    }
    }

    
    

    
    

    Ausgang:

    10
  • Abgesehen von den oben genannten Methoden, wenn wir versuchen, eine endgültige statische Variable irgendwo anders zu initialisieren, erhalten wir einen Kompilierzeitfehler.

    class Test {
    final static int x;
    public static void m()
    {
    x = 10;
    }
    public static void main(String args)
    {
    System.out.println(x);
    }
    }

    
    

    
    

    Ausgabe:

    error: cannot assign a value to final variable x

    Implementierung einer finalen statischen Variablen

    class MainClass {
    final static String company = "GFG";
    String name;
    int rollno;
    public
    static void main(String args)
    {
    MainClass ob = new MainClass();
    ob.company = "Geeksforgeeks";
    ob.name = "Bishal";
    ob.rollno = 007;
    System.out.println(ob.company);
    System.out.println(ob.name);
    System.out.println(ob.rollno);
    }
    }

    
    

    
    

    Ausgabe:

    error: cannot assign a value to final variable company

    Dieser Artikel wurde von Bishal Kumar Dubey verfasst. Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel unter contribute.geeksforgeeks.org schreiben oder eine E-Mail an [email protected] schicken. Sehen Sie Ihren Artikel auf der GeeksforGeeks-Hauptseite erscheinen und helfen Sie anderen Geeks.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht.