Qu'est-ce qu'un constructeur par défaut?
Un constructeur par défaut est une méthode spécialisée qui crée et initialise un objet dans la programmation orientée objet. Il existe plusieurs types de constructeurs, mais un constructeur par défaut doit répondre à l'un des deux critères spécifiques, en plus de la création et de l'initialisation d'un objet. Il ne doit pas avoir de paramètre. Dans ce cas, il peut également être appelé un constructeur nullary, ou il doit affecter des valeurs par défaut à tous les paramètres qu'il a la capacité de définir. Certains langages informatiques spécifient implicitement un constructeur de nullaires par défaut si le programmeur ne spécifie aucun constructeur. Une fois que tout type de constructeur est écrit, le constructeur par défaut de nullary n'est plus spécifié et doit être explicitement écrit si nécessaire.
Pour les langages informatiques autorisant l'héritage orienté objet, les constructeurs par défaut des sous-classes doivent être connectés avec précision aux constructeurs des superclasses. Les constructeurs de sous-classes doivent toujours appeler les constructeurs de super-classes avant de faire quoi que ce soit spécifique à la sous-classe. Dans certaines langues, comme Java®, un constructeur de sous-classe appelle implicitement un constructeur de nullaires par défaut de superclasses. Si un constructeur nullary par défaut de superclasse n'existe pas, l'objet de sous-classe ne peut pas être construit correctement. Les sous-classes peuvent toujours avoir l'un ou l'autre type de constructeur par défaut, mais un constructeur de superclasse disponible doit être appelé correctement, peut-être en lui transmettant des valeurs par défaut uniques à la sous-classe.
La génération implicite d'un constructeur de nullary par défaut présente l'avantage de réduire le nombre de méthodes qu'un programmeur doit spécifier et documenter, mais présente également l'inconvénient de rendre éventuellement plus difficile la maintenance et la compréhension du code. Certains programmeurs considèrent que l'omission d'un constructeur par défaut est une mauvaise pratique, d'autres non. Rien n'empêche un programmeur individuel d'adhérer à l'une ou l'autre de ces méthodes de programmation. Par conséquent, l'inclusion d'un constructeur de nullaires par défaut dans le code est en grande partie un choix stylistique de la part du programmeur. Si le constructeur est inclus, la plupart des écoles de pensée indiquent qu'il doit être commenté et documenté comme tout autre constructeur ou méthode.
Tout constructeur par défaut peut être associé à des modificateurs d'accès, rendant le constructeur public, protected ou private. Cela donne au constructeur des capacités spécifiques en fonction de la classe dans laquelle il est spécifié. Un constructeur public par défaut peut être utilisé pour créer un nouvel objet à partir d'une autre classe, alors qu'un constructeur protégé ne peut être appelé qu'à partir de sa propre classe et de ses sous-classes. Les constructeurs par défaut protégés sont souvent vus dans une hiérarchie d'héritage. Les constructeurs privés ne sont généralement employés que dans des classes autonomes, où une méthode de fabrique est disponible pour l'appeler, plutôt que par le programmeur.