J'ai lu un article avant qui parlait de ce problème de commande importNewJe l'ai cherché mais je ne l'ai pas trouvé. Le chargement de classe charge d'abord les attributs et blocs static de la classe parent, puis charge ses propres attributs et blocs statiques, dans l'ordre de haut en bas. Lors de la construction d'un objet, appelez toujours d'abord le constructeur de la classe parent, puis appelez son propre constructeur. Dans votre exemple ci-dessus, vous chargez d'abord la classe App. Qui aurait pensé que son premier attribut static devait réellement construire un objet de son propre type ? Cela ignore les autres attributs static et bloque directement le constructeur. Oui, le constructeur lui-même imprime un App, mais le programme ajoutera 4 au-dessus du constructeur après la compilation. Pour cela, vous pouvez vérifier le fichier de bytecode généré par la compilation, puis le charger et construire objets, l'ordre est mentionné ci-dessus. SubClass t = new SubClass();
Savez-vous comment déboguer avec des points d'arrêt ? Vous pouvez utiliser les points d'arrêt Eclipse pour déboguer et voir la séquence d'exécution du code et des instantanés des données
J'ai lu un article avant qui parlait de ce problème de commande
importNew
Je l'ai cherché mais je ne l'ai pas trouvé. Le chargement de classe charge d'abord les attributs et blocsstatic
de la classe parent, puis charge ses propres attributs et blocs statiques, dans l'ordre de haut en bas. Lors de la construction d'un objet, appelez toujours d'abord le constructeur de la classe parent, puis appelez son propre constructeur. Dans votre exemple ci-dessus, vous chargez d'abord la classeApp
. Qui aurait pensé que son premier attributstatic
devait réellement construire un objet de son propre type ? Cela ignore les autres attributsstatic
et bloque directement le constructeur. Oui, le constructeur lui-même imprime unApp
, mais le programme ajoutera4
au-dessus du constructeur après la compilation. Pour cela, vous pouvez vérifier le fichier de bytecode généré par la compilation, puis le charger et construire objets, l'ordre est mentionné ci-dessus.SubClass t = new SubClass();
Savez-vous comment déboguer avec des points d'arrêt ? Vous pouvez utiliser les points d'arrêt Eclipse pour déboguer et voir la séquence d'exécution du code et des instantanés des données