Voorwaarde : statische variabelen, definitief sleutelwoord
Statische variabele: Wanneer de waarde van een variabele niet wordt gevarieerd, dan is het een niet goede keuze om te gaan voor instantie variabele. Op dat ogenblik kunnen wij statische modifier aan die variabele toevoegen. Wanneer wij variabele als statisch verklaren, dan wordt op het niveau van de klasse één enkele variabele gecreëerd die met de objecten wordt gedeeld. Elke verandering in die statische variabele weerspiegelt in de andere objecten operaties. Als we een statische variabele niet initialiseren, dan zal JVM standaard een standaard waarde voor statische variabele geven.
Maar wanneer wij een statische variabele met definitieve modifier verklaren dan zouden wij voor de volgende conventies moeten zorgen:
- Variabelen slechts als statisch verklaren kan tot verandering in hun waarden door één of meerdere instanties van een klasse leiden waarin het wordt verklaard.
- Het verklaren hen als statische definitief zal u helpen om een CONSTANT te creëren. Er bestaat slechts één exemplaar van de variabele, die niet opnieuw kan worden geïnitialiseerd.
Belangrijke punten over statische variabele definitief:
- Initialisatie van variabele Verplicht: Als de statische variabele als definitief wordt verklaard, moeten we de initialisatie expliciet uitvoeren, of we deze nu gebruiken of niet, en JVM zal geen standaardwaarde verstrekken voor de statische variabele definitief.
class
Test {
final
static
int
x;
public
static
void
main(String args)
{
}
}
Output:
error: variable x not initialized in the default constructor
- Initialisatie voor het laden van de klasse : Voor definitieve statische variabelen is het verplicht dat we een initialisatie uitvoeren voor het laden van de klasse voltooid is. We kunnen een statische eindvariabele initialiseren op het moment van declaratie.
class
Test {
final
static
int
x =
10
;
public
static
void
main(String args)
{
System.out.println(x);
}
}
Uitgang:
10
- Initialiseren binnen een statisch blok : We kunnen ook een statische eindvariabele initialiseren binnen een statisch blok omdat we een statische eindvariabele moeten initialiseren vóór de klasse en we weten dat het statische blok wordt uitgevoerd vóór de main() methode.
class
Test {
final
static
int
x;
static
{
x =
10
;
}
public
static
void
main(String args)
{
System.out.println(x);
}
}
Output:
10
- Initialiseren binnen een statisch blok : We kunnen ook een statische eindvariabele initialiseren binnen een statisch blok omdat we een statische eindvariabele moeten initialiseren vóór de klasse en we weten dat het statische blok wordt uitgevoerd vóór de main() methode.
Naast de hierboven vermelde methodes, als we ergens anders een statische finale variabele proberen te initialiseren, zullen we een compileertijdfout krijgen.
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
Implementatie van definitieve statische variabele
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
Dit artikel is geschreven door Bishal Kumar Dubey. Als je GeeksforGeeks leuk vindt en een bijdrage wilt leveren, kun je ook een artikel schrijven via contribute.geeksforgeeks.org of mail je artikel naar [email protected]. Zie je artikel verschijnen op de GeeksforGeeks hoofdpagina en help andere Geeks.