GeeksforGeeks

Förutsättning: statiska variabler, final nyckelord

Statisk variabel: När värdet på en variabel inte varieras är det inte ett bra val att välja en instansvariabel. Då kan vi lägga till statisk modifiering till variabeln. När vi deklarerar en variabel som statisk skapas en enda variabel på klassnivå som delas med objekten. Alla ändringar i den statiska variabeln återspeglas i de andra objektens operationer. Om vi inte initialiserar en statisk variabel kommer JVM som standard att tillhandahålla ett standardvärde för den statiska variabeln.

Men när vi deklarerar en statisk variabel med final modifier bör vi ta hänsyn till följande konventioner:

  • Om variabler endast deklareras som statiska kan det leda till att deras värden ändras av en eller flera instanser av den klass där de deklareras.
  • Om de deklareras som statiska final hjälper det dig att skapa en CONSTANT. Endast en kopia av variabeln finns som inte kan återinitialiseras.

Väsentliga punkter om statisk finalvariabel:

  1. Initialisering av variabel Obligatorisk : Om den statiska variabeln deklareras som final måste vi utföra initialisering uttryckligen oavsett om vi använder den eller inte och JVM kommer inte att ge något standardvärde för den statiska finalvariabeln.

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

    
    

    
    

    Output:

    error: variable x not initialized in the default constructor
  2. Initialisering före klassinläsning: För slutliga statiska variabler är det obligatoriskt att utföra initialisering innan klassinläsningen avslutas. Vi kan initialisera en slutlig statisk variabel vid deklarationen.

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

    
    

    
    

    Output:

    10
  3. Initialisera i ett statiskt block: Vi kan också initialisera en slutlig statisk variabel i ett statiskt block eftersom vi bör initialisera en slutlig statisk variabel före klassen och vi vet att det statiska blocket utförs före main()-metoden.

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

    
    

    
    

    Output:

    10

Ovanför de ovannämnda metoderna, om vi försöker initialisera en slutlig statisk variabel någon annanstans kommer vi att få ett kompileringsfel.

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



Output:

error: cannot assign a value to final variable x

Implementering av slutlig statisk variabel

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);
}
}



Output:

error: cannot assign a value to final variable company

Denna artikel har bidragits av Bishal Kumar Dubey. Om du gillar GeeksforGeeks och vill bidra kan du också skriva en artikel via contribute.geeksforgeeks.org eller maila din artikel till [email protected]. Se din artikel dyka upp på GeeksforGeeks huvudsida och hjälp andra Geeks.

Lämna ett svar

Din e-postadress kommer inte publiceras.