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