Java pour l'informatique industrielle
Chapitre 1. Introduction aux objets
Chapitre 2. Les structures de contrôle
2.1. Abstraction et modularité
2.2. La comparaison
2.3. Le choix
2.4. Les constructeurs
2.5. La surcharge
2.5.1. La surcharge des constructeurs
2.5.2. La surcharge des méthodes
2.6. La répétition
2.7. Les variables
2.8. Le domaine de valeur
2.9. Exercice
Chapitre 3. Unifier et réutiliser
Chapitre 4. Modèle, Vue et Contrôle
Chapitre 5. Les entrées/sorties
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

2.5.1. La surcharge des constructeurs

Dans le cas de la classe CompteurNBits, nous avons fourni un seul constructeur. Il est possible d'en fournir d'autres à partir du moment où la signature est différente. Pour un constructeur, la signature est caractérisée par le nombre de paramètres et leur type.

class CompteurNBits { /** 0 ≤ etat < 2n */ int etat; /** 0 < n < 31 */ byte n; /** Constructeur qui permet seulement d'initialiser le nombre de bits. * @param n nombre de bits pour coder l'état, 0 < valeur < 31 */ CompteurNBits(byte n) { this.n = n; this.etat = 0; } /** Constructeur qui permet d'initialiser le nombre de bits et l'état * @param n nombre de bits pour coder l'état, 0 < n < 31 * @param etat valeur initiale de l'état, 0 ≤ etat < 2n */ CompteurNBits(int etat, byte n) { this(n); // appel au premier constructeur qui initialise le champ n this.etat = etat; } }

Le constructeur est surchargé, mais il n'y a pas d'ambiguïté, puisque le premier a un paramètre et le deuxième en a deux. new CompteurNBits(8) permet de construire un compteur 8 bits initialisé par défaut à 0, new CompteurNBits(5, 8) utilise le deuxième constructeur pour construire un compteur 8 bits initialisé à la valeur 5.

On remarque également que l'identificateur n est également surchargé. Il est parfois utilisé comme un champs et parfois comme un paramètre. Le this.n permet de distinguer le champ du paramètre.

Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante