Statico in Java:
Statico è un modificatore di non accesso. La parola chiave statica appartiene alla classe rispetto all'istanza della classe. può essere utilizzato per collegare una variabile o un metodo a una classe.
La parola chiave statica PU CAN essere utilizzata con:
Metodo
Variabile
Classe nidificata in un'altra classe
Blocco di inizializzazione
NON può essere utilizzato con:
Classe (non nidificata)
Costruttore
interfacce
Metodo Classe interna locale (differenza quindi classe nidificata)
Metodi della classe interna
Variabili di istanza
Variabili locali
Esempio:
Immagina il seguente esempio che ha una variabile di istanza denominata count che è incrementata nel costruttore:
package pkg;
class StaticExample {
int count = 0;// will get memory when instance is created
StaticExample() {
count++;
System.out.println(count);
}
public static void main(String args[]) {
StaticExample c1 = new StaticExample();
StaticExample c2 = new StaticExample();
StaticExample c3 = new StaticExample();
}
}
Produzione:
1 1 1
Poiché la variabile di istanza ottiene la memoria al momento della creazione dell'oggetto, ogni oggetto avrà la copia della variabile di istanza, se incrementata non si rifletterà su altri oggetti.
Ora se cambiamo il conteggio delle variabili di istanza in uno statico, il programma produrrà un output diverso:
package pkg;
class StaticExample {
static int count = 0;// will get memory when instance is created
StaticExample() {
count++;
System.out.println(count);
}
public static void main(String args[]) {
StaticExample c1 = new StaticExample();
StaticExample c2 = new StaticExample();
StaticExample c3 = new StaticExample();
}
}
Produzione:
1 2 3
In questo caso la variabile statica otterrà la memoria una sola volta, se un oggetto modifica il valore della variabile statica, manterrà il suo valore.
Statico con finale:
La variabile globale dichiarata come definitiva e statica rimane invariata per l'intera esecuzione. Perché, i membri statici vengono archiviati nella memoria della classe e vengono caricati una sola volta nell'intera esecuzione. Sono comuni a tutti gli oggetti della classe. Se si dichiarano le variabili statiche come finali, nessuno degli oggetti non può modificarne il valore in quanto è definitivo. Pertanto, le variabili dichiarate come finali e statiche vengono talvolta chiamate Costanti. Tutti i campi delle interfacce sono indicati come costanti, perché sono finali e statici per impostazione predefinita.
Risorsa immagine: statico finale