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:
- 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
- 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
- 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.