static_initializer
static_initializer
::=
"static" statement_block
[rule list]
This rule is called by
-> field_declaration
Explications
Il est possible d'exécuter un bloc d'instructions automatiquement
au moment du chargement de la classe, afin d'initialiser des
variables de classe par exemple. Cette construction peut être
utilisée pour calculer des constantes complexes.
L'exemple ci-dessous calcule la somme des carrés de 1 à 10 et la
place dans la variable carres
, qui pourra ensuite
être utilisée par les futures instances de la classe.
Exemple
class static_initializer {
static int carres;
static {
for (int i = 0;i <= 10;i++)
carres += i*i;
}
public static void main(String args[]) {
System.out.println("la somme des carres de 1 a 10 vaut "+carres);
}
}
Exécution
la somme des carres de 1 a 10 vaut 385
Attention !
Il ne faut pas confondre un bloc d'initialisation statique avec
le constructeur d'une
classe. En effet, le bloc d'initialisation ne peut pas travailler
sur des variables d'instance, puisqu'au moment de son exécution,
il n'existe pas encore d'instance de la classe.
Index général - Index concepts - Règles BNF
© 1996, DIP Genève, Alexandre Maret & Jacques Guyot
page générée Fri Jun 21 15:41:11 MET DST 1996