Ordre Java d'initialisation et d'instanciation
Présentation de l'initialisation et de l'instanciation
L'initialisation implique l'attribution de valeurs aux champs statiques et finaux lors du chargement de la classe, tandis que l'instanciation concerne l'initialisation des instances d'objet pendant l'objet création.
Initialisation de classe
- Les interfaces sont initialisées séparément lors du premier accès, potentiellement via une initialisation récursive.
- Les champs statiques et les initialiseurs sont traités chronologiquement lors de l'initialisation de la classe.
Objet Initialisation
- Les variables d'instance et les initialiseurs se voient attribuer des valeurs dans une séquence textuelle lors de la création de l'objet.
- Les constructeurs sont invoqués de manière récursive, le constructeur de la superclasse étant exécuté avant le constructeur de la classe actuelle.
Interface Gestion
- Les interfaces sont initialisées indépendamment des classes qu'elles étendent et ne sont pas traitées avant les superclasses lors de l'initialisation de la classe.
Rôle du constructeur super()
- Le constructeur super() par défaut détermine quel constructeur de superclasse utiliser invoquer.
- Cela affecte l'ordre d'exécution du constructeur mais pas le processus d'initialisation global.
Idées fausses et détails manquants
- Les constantes au moment de la compilation ne sont pas initialisées lors de l'initialisation de la classe ou de l'objet.
- Les champs non constants sont initialisés avant constantes de compilation.
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!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn