119 votes

Qu'est-ce qu'un bloc d'initialisation ?

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 ?

11voto

Gaurav Points 69

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.

2voto

roottraveller Points 4532

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X