Variabile statica dentro Java
- Variabili statiche
- Metodi statici
- Blocchi statici di codice.
Diamo prima un'occhiata alle variabili statiche e ai metodi statici.
In cosa consiste la variabile statica Java?
Variabile statica dentro Java è una variabile che appartiene alla classe e viene inizializzata una sola volta all'inizio dell'esecuzione. È una variabile che appartiene alla classe e non all'oggetto (istanza). Le variabili statiche vengono inizializzate una sola volta, all'inizio dell'esecuzione. Queste variabili verranno inizializzate per prime, prima dell'inizializzazione di qualsiasi variabile di istanza.
- Una singola copia da condividere da tutte le istanze della classe
- È possibile accedere a una variabile statica direttamente tramite il nome della classe e non necessita di alcun oggetto
Sintassi:
<class-name>.<variable-name>
In cosa consiste il metodo statico Java?
Metodo statico in Java è un metodo che appartiene alla classe e non all'oggetto. Un metodo statico può accedere solo ai dati statici. È un metodo che appartiene alla classe e non all'oggetto (istanza). Un metodo statico può accedere solo ai dati statici. Non può accedere a dati non statici (variabili di istanza).
- Un metodo statico può chiamare solo altri metodi statici e non può chiamare da esso un metodo non statico.
- È possibile accedere a un metodo statico direttamente tramite il nome della classe e non necessita di alcun oggetto
- Un metodo statico non può in alcun modo fare riferimento alle parole chiave “this” o “super”.
Sintassi:
<class-name>.<method-name>
Nota: Il metodo main è statico, poiché deve essere accessibile affinché un'applicazione possa essere eseguita, prima che venga eseguita qualsiasi istanziazione.
Impariamo le sfumature delle parole chiave statiche facendo alcuni esercizi!
Esempio: come chiamare variabili e metodi statici
Passo 1) Copia il seguente codice in un editor
public class Demo{
public static void main(String args[]){
Student s1 = new Student();
s1.showData();
Student s2 = new Student();
s2.showData();
//Student.b++;
//s1.showData();
}
}
class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.
Student(){
//Constructor incrementing static variable b
b++;
}
public void showData(){
System.out.println("Value of a = "+a);
System.out.println("Value of b = "+b);
}
//public static void increment(){
//a++;
//}
}
Passo 2) Salva e compila il codice. Esegui il codice come, JavaDimostrazione.
Passo 3) L'output previsto è mostrato di seguito
Il diagramma seguente mostra come vengono creati gli oggetti e le variabili di riferimento e come le diverse istanze accedono alle variabili statiche.
Passo 4) È possibile accedere a una variabile statica dall'esterno della classe utilizzando la sintassi NomeClasse.Nome_Variabile. Decommenta le righe n. 7 e 8 . Salva, compila ed esegui. Osservare l'output.
Value of a = 0 Value of b = 1 Value of a = 0 Value of b = 2 Value of a = 0 Value of b = 3
Passo 5) Decommenta la riga 25,26 e 27 . Salva, compila ed esegui.
error: non-static variable a cannot be referenced from a static context a++;
Passo 6) Errore = ? Questo perché non è possibile accedere alla variabile di istanza “a"dal metodo della classe statica Java"incremento".
In cosa consiste il blocco statico Java?
. blocco statico è un blocco di istruzioni all'interno di a Java classe che verrà eseguita quando una classe viene caricata per la prima volta nel file JVM. UN il blocco statico aiuta a inizializzare i membri dati statici, proprio come i costruttori aiutano a inizializzare i membri dell'istanza.
class Test{
static {
//Code goes here
}
}
Il programma seguente è un esempio di blocco statico Java.
Esempio: come accedere al blocco statico
public class Demo {
static int a;
static int b;
static {
a = 10;
b = 20;
}
public static void main(String args[]) {
System.out.println("Value of a = " + a);
System.out.println("Value of b = " + b);
}
}
otterrai il seguente output del programma.
Value of a = 10 Value of b = 20


