Constructeur (programmation)

Constructeur (programmation)

En programmation orientée objet, un constructeur est une fonction particulière qui permet d'instancier, càd créer un objet en mémoire vive. Le constructeur permet d'allouer la mémoire nécessaire à l'objet et d'initialiser ses attributs.

Si le langage l'autorise, la surcharge est possible et les constructeurs se différencient par le nombre et le type des paramètres passés et renvoyés mais aussi par le formalisme employé. Dans de nombreux langages, on distingue certains constructeurs en particulier :

  • le constructeur par défaut n'a aucun argument ;
  • le constructeur par recopie a un unique argument du même type que l'objet à créer (généralement sous forme de référence constante) et il recopie les attributs depuis l'objet passé en argument sur l'objet à créer.

Ces deux constructeurs ont souvent une définition attribuée par défaut par le compilateur. Le constructeur par défaut n'a alors aucun effet ; le constructeur de recopie par contre recopiera les valeurs de tous les membres de l'objet donné vers l'objet courant. Ceci peut s'avérer particulièrement dangereux, spécialement dans le cas où des pointeurs sont alloués par le constructeurs et libérés par le destructeur.

Sommaire

En Java

En Java, new est un opérateur unaire de construction qui crée un nouvel objet ou un nouveau tableau.

Pour créer un nouvel objet, le mot-clé new doit être suivi d'une méthode qui soit un constructeur. Par exemple, on pourra avoir :

MaClasse obj; 
    ... 
obj = new MaClasse(5, "bonjour");

si toutefois la classe MaClasse a un constructeur qui possède deux paramètres : un entier et une chaîne de caractères.

Pour créer un nouveau tableau, on peut par exemple écrire :

String[] arguments = new String[10];
    // ou bien : 
int[][] uneMatrice = new int[4][5];
    // ou encore : 
int[][] quatreLignes = new int[4][];

En C++

En C++, le constructeur est une fonction membre publique de la classe portant le même nom que celle-ci. Il est appelé lors de la déclaration de l'objet ou lors de l'utilisation du mot-clé new.

class Object
{
    public :
        Object ();              // Constructeur par défaut
        Object (int);           // Constructeur paramétrique
        Object (const Object&); // Constructeur par recopie
        ~Object ();             // Destructeur
};
 
int main ()
{
    Object obj, *p_obj;         // Appel du constructeur par défaut pour obj
    p_obj=new Object(27);       // Appel du constructeur paramétrique pour créer un objet pour p_obj
    Object obj2(obj);           // Appel du constructeur par recopie pour obj2
    delete p_obj;               // Appel du destructeur pour détruire l'objet contenu dans p_obj
}                               // Appel du destructeur pour obj et obj2

Critique

Dans les langages tels Java, l'appel à un constructeur est équivalent à l'appel d'une méthode statique, ce qui rend plus difficile l'écriture de tests unitaires pour une méthode. L'injection de dépendance permet au programmeur de ne plus devoir écrire aucun appel de constructeur car le framework d'injection de dépendance s'en charge à sa place.

Voir aussi



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Constructeur (programmation) de Wikipédia en français (auteurs)

Игры ⚽ Нужна курсовая?

Regardez d'autres dictionnaires:

  • Constructeur (Programmation Informatique) — En programmation orientée objet, le constructeur d une classe est une méthode particulière appelée lors de l instanciation. Si le langage l autorise la surcharge est possible et les constructeurs se différencient par les paramètres passés et… …   Wikipédia en Français

  • Constructeur (programmation informatique) — En programmation orientée objet, le constructeur d une classe est une méthode particulière appelée lors de l instanciation. Si le langage l autorise la surcharge est possible et les constructeurs se différencient par les paramètres passés et… …   Wikipédia en Français

  • Constructeur (informatique) — Liste de constructeurs informatiques « Constructeur informatique » redirige ici. Pour la méthode appelée constructeur en programmation objet, voir Constructeur (programmation informatique). Cette page présente les principales… …   Wikipédia en Français

  • Programmation de Commande Numérique — La programmation de commande numérique (CN) permet de piloter des machine outils à commande numérique. C est le directeur de commande numérique (DCN) qui interprète les instructions, reçoit les informations des capteurs et agit (par l… …   Wikipédia en Français

  • Programmation de commande numerique — Programmation de commande numérique La programmation de commande numérique (CN) permet de piloter des machine outils à commande numérique. C est le directeur de commande numérique (DCN) qui interprète les instructions, reçoit les informations des …   Wikipédia en Français

  • Programmation numérique — Programmation de commande numérique La programmation de commande numérique (CN) permet de piloter des machine outils à commande numérique. C est le directeur de commande numérique (DCN) qui interprète les instructions, reçoit les informations des …   Wikipédia en Français

  • Programmation orientée prototype — La programmation orientée prototype est une forme de programmation orientée objet sans classe, basée sur la notion de prototype. Un prototype est un objet à partir duquel on crée de nouveaux objets. Dans le langage de programmation orientée… …   Wikipédia en Français

  • Programmation générique — Généricité En programmation, la généricité d une fonction repose sur son indépendance vis à vis du type, et éventuellement du nombre, de ses arguments. C est un concept important pour un langage de haut niveau car il permet d augmenter le niveau… …   Wikipédia en Français

  • Programmation de commande numérique — La programmation de commande numérique (CN) permet de piloter des machine outils à commande numérique. C est le directeur de commande numérique (DCN) qui interprète les instructions, reçoit les informations des capteurs et agit (par l… …   Wikipédia en Français

  • Template (programmation) — En programmation informatique, les templates (en anglais modèles, parfois aussi appelés patrons) sont une particularité de la programmation en langage C++, qui autorise l écriture d un code sans considération envers le type des données avec… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”