Nous pouvons mettre du code dans un constructeur ou une méthode ou un bloc d'initialisation. A quoi sert le bloc d'initialisation ? Est-il nécessaire que chaque programme Java l'ait ?
Réponses
Trop de publicités?belle réponse d'aioobe ajouter quelques points supplémentaires
public class StaticTest extends parent {
static {
System.out.println("inside satic block");
}
StaticTest() {
System.out.println("inside constructor of child");
}
{
System.out.println("inside initialization block");
}
public static void main(String[] args) {
new StaticTest();
new StaticTest();
System.out.println("inside main");
}
}
class parent {
static {
System.out.println("inside parent Static block");
}
{
System.out.println("inside parent initialisation block");
}
parent() {
System.out.println("inside parent constructor");
}
}
cela donne
inside parent Static block
inside satic block
inside parent initialisation block
inside parent constructor
inside initialization block
inside constructor of child
inside parent initialisation block
inside parent constructor
inside initialization block
inside constructor of child
inside main
c'est comme énoncer une évidence, mais cela semble un peu plus clair.
Le bloc d'initialisation contient le code qui est toujours exécuté chaque fois que une instance est créée. Il permet de déclarer/initialiser le commun partie de divers constructeurs d'une classe.
L'ordre des constructeurs d'initialisation et du bloc d'initialisation n'a pas d'importance, le bloc d'initialisation est toujours exécuté avant le constructeur.
Et si nous voulions exécuter du code une fois pour tous les objets d'une classe ?
Nous utilisons Static Block en Java.