  |
Inizializzazione statica |
  |
un campo statico è una variabile condivisa tra le istanze di una classe |
  |
i campi statici vengono inizializzati al caricamento della classe |
Anche un campo statico può essere inizializzato. Bisogna tenere presente che nella inizializzazione non si può accedere a campi non statici. C'è anche una differenza temporale: il campo statico viene inizializzare può quando la classe viene caricata. Spesso la classe viene caricata quando creo una istanza. Ma in realtà la classe viene caricata la prima volta che la utilizzo, e posso utilizzarla, come nel caso di System.out, anche senza creare alcuna istanza.
  |
Esistono i blocchi static |
  |
eseguiti al caricamento della classe |
class Quadrati {
static int[] a = new int[10] ;
static {
for(int i=0; i<10; ++1)
a[i]=i*i;
}
}
Poiché le espressioni di inizializzazione hanno i loro limiti, è possibile effettuare delle inizializzazioni complesse dei campi statici grazie ai blocchi statici, come mostrati in figura. Si tratta di codice che viene eseguito al caricamento della classe, e che può fare riferimento solamente a campi statici.
|