GeeksforGeeks

Forudsætning : statiske variabler, final nøgleord

Statisk variabel: Når værdien af en variabel ikke varierer, er det ikke et godt valg at gå til eksempelvariable. På det tidspunkt kan vi tilføje statisk modificator til den pågældende variabel. Når vi erklærer en variabel for statisk, oprettes der på klasseniveau en enkelt variabel, som deles med objekterne. Enhver ændring i den statiske variabel afspejler sig i de andre objektoperationer. Hvis vi ikke initialiserer en statisk variabel, vil JVM som standard give en standardværdi for den statiske variabel.

Men når vi erklærer en statisk variabel med final-modifikator, bør vi være opmærksomme på følgende konventioner:

  • Deklarere variabler kun som statiske kan føre til ændring af deres værdier af en eller flere instanser af en klasse, hvori den er erklæret.
  • Deklarere dem som statiske final vil hjælpe dig med at oprette en CONSTANT. Der findes kun én kopi af variablen, som ikke kan geninitialiseres.

Vigtige punkter om endelig statisk variabel:

  1. Initialisering af variabel Obligatorisk : Hvis den statiske variabel er erklæret som endelig, skal vi udføre initialisering eksplicit, uanset om vi bruger den eller ej, og JVM vil ikke give nogen standardværdi for den endelige statiske variabel.

    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ør indlæsning af klassen : For endelige statiske variabler er det obligatorisk, at vi skal udføre initialiseringen før afslutningen af indlæsningen af klassen. Vi kan initialisere en endelig statisk variabel på tidspunktet for deklarationen.

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

    
    

    
    

    Output:

    10
  3. Initialiser inde i en statisk blok : Vi kan også initialisere en endelig statisk variabel inde i en statisk blok, fordi vi bør initialisere en endelig statisk variabel før klassen, og vi ved, at statisk blok udføres før main()-metoden.

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

    
    

    
    

    Output:

    10

Ud over de ovennævnte metoder vil vi få en kompileringsfejl, hvis vi forsøger at initialisere en endelig statisk variabel et andet sted.

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 af endelig 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

Denne artikel er bidraget af Bishal Kumar Dubey. Hvis du kan lide GeeksforGeeks og gerne vil bidrage, kan du også skrive en artikel ved hjælp af contribute.geeksforgeeks.org eller sende din artikel på mail til [email protected]. Se din artikel blive vist på GeeksforGeeks’ hovedside, og hjælp andre nørder.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.