1 /*
2 * Plusieurs principes
3 * 1. Variables statiques des membres
4 * 1. Les variables membres statiques sont des variables de classe, et tous les objets partagent le même espace mémoire
5 * 2. La déclaration et la définition des variables membres statiques ne sont exécutées qu’une seule fois lors du premier chargement de la classe
6 * 3. Lors du chargement d’une classe pour la première fois, attribuez d’abord des valeurs initiales à toutes les variables statiques selon le type, puis associez les valeurs droites à celles avec des valeurs r
7 * 2. Bloc initial statique
8 * 1. Les blocs d’initialisation statiques ne sont exécutés qu’une seule fois lors du premier chargement de la classe
9 * ······ Plusieurs variables membres statiques et l’ordre d’occurrence rapide de référence d’initiation statique sont exécutés séquentiellement······
10 * 3. Variables membres dynamiques
11 * 1. La définition des variables membres dynamiques est exécutée avant le constructeur à chaque instanciation d’un objet
12 * 4. Bloc d’initialisation dynamique
13*1. Le bloc d’initialisation dynamique est exécuté avant le constructeur à chaque fois qu’un objet est instancié
14 * ······ Plusieurs variables membres dynamiques et blocs d’initialisation dynamique sont exécutés dans l’ordre dans lequel ils apparaissent······
15 * Résumé : En général, lorsqu’une classe est chargée pour la première fois, elle est exécutée dans l’ordre suivant, sans héritage impliqué
16 * 1. Exécuter la définition statique des variables membres et le bloc d’initialisation statique dans l’ordre d’occurrence
17 * 2. Exécuter la définition dynamique des variables membres et le bloc d’initialisation dynamique dans l’ordre d’occurrence
18 * 3. Exécuter le constructeur
19 * Lors de l’instanciation à nouveau d’un objet, seules les étapes 2 et 3 peuvent être exécutées
20 *
21 * ············ Les variables membres, les définitions et les blocs d’initialisation sont exécutés avant le constructeur·········
22 * 5. En cas d’héritage, il doit être effectué dans l’ordre suivant
23 * 1. Exécuter la définition statique de la variable membre et le bloc d’initialisation statique de la classe parente, puis exécuter la définition statique de la variable membre et le bloc d’initialisation statique de la sous-classe
24 * 2. Exécuter la définition non statique de la variable membre et le bloc d’initialisation dynamique de la classe parente, puis exécuter la méthode de construction de la classe parente
25 * 3. Exécuter la définition des variables membres non statiques des sous-classes et initialiser dynamiquement les blocs, puis exécuter la méthode de construction de sous-classes
26 * Aussi : Si la méthode utilisée dans la méthode de construction de la classe mère a été réécrite par la sous-classe, alors la méthode de réécriture de la sous-classe est utilisée lors de l’appel du constructeur de la classe parent lors de la construction de l’objet sous-classe
|