GeeksforGeeks

Prequisito: variabili statiche, parola chiave finale

Variabile statica: Quando il valore di una variabile non è variabile, allora non è una buona scelta andare per la variabile di istanza. In quel momento possiamo aggiungere il modificatore statico a quella variabile. Ogni volta che dichiariamo una variabile come statica, allora a livello di classe viene creata una singola variabile che è condivisa con gli oggetti. Qualsiasi cambiamento in quella variabile statica si riflette sulle operazioni degli altri oggetti. Se non inizializziamo una variabile statica, allora per default la JVM fornirà un valore predefinito per la variabile statica.

Ma quando dichiariamo una variabile statica con il modificatore finale allora dovremmo fare attenzione alle seguenti convenzioni:

  • Dichiarare le variabili solo come statiche può portare al cambiamento dei loro valori da una o più istanze di una classe in cui è dichiarata.
  • Dichiararle come statiche finali vi aiuterà a creare una COSTANTE. Esiste solo una copia della variabile che non può essere reinizializzata.

Punti importanti sulla variabile statica finale:

  1. Inizializzazione della variabile Obbligatoria: se la variabile statica dichiarata come finale, allora dobbiamo eseguire l’inizializzazione esplicitamente sia che la stiamo usando o meno e la JVM non fornirà alcun valore predefinito per la variabile statica finale.

    class Test {
    final static int x;
    public static void main(String args)
    {
    }
    }

    
    

    
    

    Output:

    error: variable x not initialized in the default constructor
  2. Inizializzazione prima del caricamento della classe: Per la variabile statica finale, è obbligatorio eseguire l’inizializzazione prima del completamento del caricamento della classe. Possiamo inizializzare una variabile statica finale al momento della dichiarazione.

    class Test {
    final static int x = 10;
    public static void main(String args)
    {
    System.out.println(x);
    }
    }

    
    

    
    

    Output:

    10
  3. Inizializzare all’interno di un blocco statico: Possiamo anche inizializzare una variabile statica finale all’interno di un blocco statico perché dovremmo inizializzare una variabile statica finale prima della classe e sappiamo che il blocco statico viene eseguito prima del metodo main().

    class Test {
    final static int x;
    static
    {
    x = 10;
    }
    public static void main(String args)
    {
    System.out.println(x);
    }
    }

    
    

    
    

    Output:

    10

Oltre ai metodi sopra menzionati, se cerchiamo di inizializzare una variabile statica finale da qualche altra parte, otterremo un errore di compilazione.

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

Implementazione della variabile statica finale

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

Questo articolo è stato contribuito da Bishal Kumar Dubey. Se ti piace GeeksforGeeks e vuoi contribuire, puoi anche scrivere un articolo usando contribute.geeksforgeeks.org o inviare il tuo articolo a [email protected]. Vedi il tuo articolo apparire sulla pagina principale di GeeksforGeeks e aiuta altri Geeks.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.