La statica può essere:
- Variabili statiche
- Metodi statici
- Blocchi statici di codice.
Diamo prima un'occhiata alle variabili statiche e ai metodi statici.
Che cos'è la variabile statica in Java?
La variabile statica in Java è una variabile che appartiene alla classe e viene inizializzata solo una 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 dal nome della classe e non necessita di alcun oggetto
Sintassi:
< class-name>.
Cos'è il metodo statico in Java?
Il 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 un metodo non statico da esso.
- È possibile accedere a un metodo statico direttamente dal nome della classe e non necessita di alcun oggetto
- Un metodo statico non può comunque fare riferimento a parole chiave "this" o "super"
Sintassi:
< class-name>.
Nota: il metodo principale è statico, poiché deve essere accessibile per l'esecuzione di un'applicazione prima che venga eseguita qualsiasi istanza.
Impariamo le sfumature delle parole chiave statiche facendo alcuni esercizi!
Esempio: come chiamare variabili e metodi statici
Passaggio 1) Copia il codice seguente in un editor
Demo del corso pubblico {public static void main (String args []) {Studente s1 = nuovo Studente ();s1.showData ();Studente s2 = nuovo Studente ();s2.showData ();//Student.b++;//s1.showData ();}}classe Studente {int a; // inizializzato a zerostatic int b; // inizializzato a zero solo quando la classe viene caricata non per ogni oggetto creato.Alunno(){// Costruttore che incrementa la variabile statica bb ++;}public void showData () {System.out.println ("Valore di a =" + a);System.out.println ("Valore di b =" + b);}// public static void increment () {// a ++;//}}
Passaggio 2) Salva e compila il codice. Esegui il codice come, java Demo .
Passaggio 3) Visualizzazione dell'output previsto di seguito
Il diagramma seguente mostra come vengono creati oggetti e variabili di riferimento e come si accede alle variabili statiche dalle diverse istanze.
Passaggio 4) È possibile accedere a una variabile statica dall'esterno della classe utilizzando la sintassi ClassName.Variable_Name . Rimuovi il commento dalle righe 7 e 8. Salva, compila ed esegui. Osserva l'output.
Value of a = 0Value of b = 1Value of a = 0Value of b = 2Value of a = 0Value of b = 3Passaggio 5) Rimuovere il commento dalle righe 25, 26 e 27. Salva, compila ed esegui.
error: non-static variable a cannot be referenced from a static context a++;
Passaggio 6) Errore =? Questo perché non è possibile accedere alla variabile di istanza " a " dal metodo della classe statica java " increment ".
Cos'è il blocco statico in Java?
Il blocco statico è un blocco di istruzioni all'interno di una classe Java che verrà eseguita quando una classe viene caricata per la prima volta nella JVM. Un blocco statico aiuta a inizializzare i membri dei dati statici , proprio come i costruttori aiutano a inizializzare i membri dell'istanza.
class Test{static {//Code goes here}}
Il seguente programma è l'esempio del blocco statico java.
Esempio: come accedere al blocco statico
Demo del corso pubblico {static int a;static int b;statico {a = 10;b = 20;}public static void main (String args []) {System.out.println ("Valore di a =" + a);System.out.println ("Valore di b =" + b);}}
otterrai il seguente output del programma.
Value of a = 10Value of b = 20