« Bonjour, Amigo ! Je vais maintenant te parler de la façon dont les objets sont créés. »
« Qu'y a-t-il de si compliqué à cela, tonton Rishi ? Tu écris new et le nom de la classe, tu indiques le bon constructeur et c'est bon ! »
« C'est vrai. Mais que se passe-t-il à l'intérieur de l'objet quand tu fais cela ? »
« Ce qu'il se passe ? »
« Voici comment cela se passe. L'objet est créé en plusieurs étapes. »
1) D'abord, la mémoire est allouée pour toutes les variables membres de la classe.
2) Ensuite, la classe de base est initialisée.
3) Puis toutes les variables reçoivent des valeurs, si des valeurs sont spécifiées.
4) Enfin, le constructeur est appelé.
« Ça n'a pas l'air très compliqué : d'abord les variables, puis le constructeur. »
« Voyons comment cela fonctionne dans un exemple avec deux classes : »
Code | Description |
---|---|
|
Déclare deux classes : Pet(pet) et Cat(cat).
Dans la classe Cat, nous voyons un appel explicite au constructeur de la classe de base. Voici ce qui se passe une fois la mémoire allouée : Ensuite, la classe Cat commence à s'initialiser. |
|
« Ça me semble un peu confus. Pourquoi c'est si compliqué ? »
« Ce n'est pas si difficile si tu sais vraiment ce qui se passe : »
Si une classe n'a pas de constructeurs, un constructeur est créé automatiquement.
Constructeur par défaut | |
---|---|
|
|
Si tu n'appelles pas le constructeur de la classe de base, il sera appelé automatiquement.
Appel du constructeur de la classe de base | |
---|---|
|
|
|
|
Les variables membres sont initialisées dans le constructeur.
Initialisation des variables membres | |
---|---|
|
|
Ce qui se passe vraiment | |
---|---|
|
|
« Maintenant c'est beaucoup plus clair : tout d'abord la classe de base, puis les variables en dehors du constructeur, et enfin le code du constructeur. »
« Bien joué, Amigo ! Tu as tout juste ! »
GO TO FULL VERSION