Előfeltétel : statikus változók, végleges kulcsszó
Statikus változó: Amikor egy változó értéke nem változik, akkor nem jó választás a példányváltozó. Ilyenkor statikus módosítót adhatunk a változóhoz. Amikor statikusnak nyilvánítjuk a változót, akkor az osztály szintjén egyetlen változó jön létre, amely közös az objektumokkal. Bármilyen változás ebben a statikus változóban tükröződik a többi objektum műveleteiben. Ha nem inicializálunk egy statikus változót, akkor a JVM alapértelmezés szerint egy alapértelmezett értéket ad a statikus változónak.
De ha egy statikus változót final módosítóval deklarálunk, akkor a következő konvenciókra kell ügyelnünk:
- A változók csak statikusnak való deklarálása ahhoz vezethet, hogy az értékük megváltozik annak az osztálynak egy vagy több példánya által, amelyben deklarálva van.
- A statikus véglegesnek való deklarálása segít egy ÁLLANDÓ létrehozásában. A változónak csak egy példánya létezik, amelyet nem lehet újra inicializálni.
Fontos pontok a végleges statikus változóval kapcsolatban:
- A változó inicializálása Kötelező : Ha a statikus változót véglegesnek deklaráltuk, akkor explicit módon kell elvégeznünk az inicializálást, akár használjuk, akár nem, és a JVM nem ad alapértelmezett értéket a végleges statikus változónak.
class
Test {
final
static
int
x;
public
static
void
main(String args)
{
}
}
Kimenet:
error: variable x not initialized in the default constructor
- Inicializálás az osztály betöltése előtt : A végleges statikus változók esetében kötelezően el kell végeznünk az inicializálást az osztály betöltésének befejezése előtt. Egy végleges statikus változót már a deklaráláskor inicializálhatunk.
class
Test {
final
static
int
x =
10
;
public
static
void
main(String args)
{
System.out.println(x);
}
}
Kimenet:
10
- Inicializálás statikus blokkon belül : Egy statikus blokkon belül is inicializálhatunk egy végleges statikus változót, mert egy végleges statikus változót az osztály előtt kell inicializálnunk, és tudjuk, hogy a statikus blokk a main() metódus előtt hajtódik végre.
class
Test {
final
static
int
x;
static
{
x =
10
;
}
public
static
void
main(String args)
{
System.out.println(x);
}
}
Kimenet:
10
A fent említett módszereken kívül, ha máshol próbálunk inicializálni egy végleges statikus változót, akkor fordítási hibát kapunk.
class
Test {
final
static
int
x;
public
static
void
m()
{
x =
10
;
}
public
static
void
main(String args)
{
System.out.println(x);
}
}
Kimenet:
error: cannot assign a value to final variable x
Végső statikus változó megvalósítása
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);
}
}
Kimenet:
error: cannot assign a value to final variable company
A cikk szerzője: Bishal Kumar Dubey. Ha tetszik a GeeksforGeeks és szeretnél hozzájárulni, írj cikket a contribute.geeksforgeeks.org címen, vagy küldd el a cikkedet a [email protected] címre. Láthatod, hogy a cikked megjelenik a GeeksforGeeks főoldalán, és segíthetsz más geekeknek.