Comment utiliser les initialisateurs statiques en Java

En Java, vous pouvez utiliser blocs de initialiseur pour initialiser les variables d'instance. Initializer blocs ne sont pas exécutés jusqu'à ce qu'une instance d'une classe est créée, vous ne pouvez pas compter sur eux pour initialiser les champs statiques. Après tout, vous pourriez accéder à un champ statique avant de créer une instance d'une classe.

Java fournit une fonctionnalité appelée une initialisation statique qui est conçu spécifiquement pour vous permettre d'initialiser des champs statiques. La forme générale d'une initialisation statique ressemble à ceci:

statique {déclarations ...}



Comme vous pouvez le voir, une initialisation statique est similaire à un bloc d'initialisation, mais commence par le mot statique. Comme avec un bloc d'initialisation, vous codez initialiseurs statiques dans le corps de la classe, mais en dehors de tout autre bloc, comme le corps d'une méthode ou d'un constructeur.

La première fois que vous accédez à un membre statique comme un champ statique ou une méthode statique, des initialiseurs statiques dans la classe sont exécutées - à condition que vous ne l'avez pas déjà créé une instance de la classe. Voilà parce que les initialiseurs statiques sont également exécutées la première fois que vous créez une instance. Dans ce cas, les initialiseurs statiques sont exécutées avant le constructeur est exécuté.

Si une classe a plus d'une initialisation statique, les initialiseurs sont exécutées dans l'ordre dans lequel ils apparaissent dans le programme.

Voici un exemple d'une classe qui contient une initialisation statique:

StaticInit de classe {public static int x-statique {x = 32 -} // autres membres du groupe tels que les constructeurs et les // méthodes vont ici ...}

Cet exemple est assez trivial. En fait, vous pouvez obtenir le même effet tout en affectant la valeur 32 à la variable quand elle est déclarée. Si, toutefois, vous deviez effectuer un calcul compliqué de déterminer la valeur de X - ou si sa valeur provient d'une base de données - une initialisation statique pourrait être très utile.


» » » » Comment utiliser les initialisateurs statiques en Java