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.
classTest {finalstaticintx;publicstaticvoidmain(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.
classTest {finalstaticintx =10;publicstaticvoidmain(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.
classTest {finalstaticintx;static{x =10;}publicstaticvoidmain(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.