GeeksforGeeks

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:

  1. 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
  2. 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
  3. 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.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.