Bloc de code d'initialisation statique vs bloc de code d'initialisation non statique
En Java, vous pouvez déclarer des blocs de code dans les classes qui s'exécutent pendant le cours initialisation ou instanciation d'objet. Bien que les deux types de blocs de code puissent être utilisés pour effectuer des actions spécifiques, ils diffèrent par leur portée et leur comportement.
Bloc de code d'initialisation statique
Un bloc de code d'initialisation statique est déclaré avec le mot clé static avant l'accolade ouvrante {. Il est associé à la classe elle-même, et non à un objet spécifique. Ce bloc de code n'est exécuté qu'une seule fois, lorsque la classe est chargée par la machine virtuelle Java (JVM). Il est généralement utilisé pour initialiser des constantes au niveau de la classe, telles que des variables finales statiques.
Par exemple :
public class Test { private static final int a; static { a = 5; doSomething(a); } private static int doSomething(int x) { return (x+5); } }
Dans cet exemple, le bloc d'initialisation statique initialise la variable finale statique a avec la valeur 5 et appelle la méthode doSomething. Puisqu'il est statique, il peut accéder à la variable statique a depuis le bloc.
Bloc de code d'initialisation non statique
Un bloc de code d'initialisation non statique, également connu sous le nom de bloc d'initialisation d'instance, est déclaré sans le mot clé static. Il est associé à un objet et exécuté à chaque fois qu'un objet de cette classe est créé. Ce bloc de code est généralement utilisé pour initialiser des variables au niveau de l'instance ou effectuer toute configuration nécessaire pour l'objet.
Par exemple :
public class Test { private int a; { a = 5; doSomething(a); } private void doSomething(int x) { // ... } }
Dans cet exemple, le bloc d'initialisation non statique initialise la variable d'instance a avec la valeur 5 et appelle la méthode doSomething. Puisqu'il n'est pas statique, il ne peut accéder qu'aux variables d'instance de l'objet actuel.
Objectif et documentation
Les blocs de code d'initialisation statiques sont utiles pour configurer la classe -des constantes à l'échelle et l'exécution des tâches qui doivent être effectuées pendant le chargement de la classe. Ils peuvent être utilisés pour des tâches telles que la vérification des paramètres d'entrée, l'enregistrement des gestionnaires d'événements ou l'initialisation des cadres de journalisation.
Les blocs de code d'initialisation non statiques sont utilisés pour initialiser les variables au niveau de l'instance et effectuer toute configuration nécessaire pour l'objet. Ils peuvent être utilisés pour des tâches telles que la définition de valeurs par défaut, la validation d'entrées ou la création d'objets enfants.
La documentation sur les blocs de code d'initialisation statiques et non statiques peut être trouvée dans la spécification du langage Java (JLS), en particulier dans les sections couvrant l'initialisation de classe et l'initialisation d'instance.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!