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?
La frequenza delle onde ultrasoniche รจ misurata in kilohertz (kHz). Diverse frequenze puntano la grassa in modi leggermente diversi. Le frequenze piรน basse raggiungono la grassa piรน profonda, mentre le frequenze piรน alte lavorano piรน vicino alla superficie. 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


