Maison >Java >javaDidacticiel >Quel est l'ordre d'exécution correct de l'initialisation des variables d'instance et de l'exécution du constructeur en Java ?
Initialisation de variable d'instance et exécution de constructeur en Java
Une idée fausse courante concernant l'initialisation d'objet Java est l'ordre dans lequel les champs et les constructeurs sont exécutés . Clarifions ce concept avec un exemple.
Dans l'extrait de code donné :
class X { Y b = new Y(); X() { System.out.print("X"); } } class Y { Y() { System.out.print("Y"); } } public class Z extends X { Y y = new Y(); Z() { System.out.print("Z"); } public static void main(String[] args) { new Z(); } }
Contrairement à l'hypothèse selon laquelle les champs sont initialisés avant les constructeurs, la sortie de ce programme est "YZX". Pour comprendre pourquoi, nous devons nous plonger dans le processus d'initialisation de Java.
Ordre d'initialisation :
Java initialise les classes dans un ordre spécifique :
Dans l'exemple ci-dessus, la séquence d'événements est :
Par conséquent, l'ordre correct d'exécution est "YZX". Cela souligne l'importance de comprendre l'ordre d'initialisation Java pour éviter un comportement inattendu dans la construction d'objets.
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!