constructor_declaration

constructor_declaration 
      ::= 
      { modifier } identifier "(" [ parameter_list ] ")" 
      statement_block 

[rule list]
This rule is called by

-> field_declaration

Explications

Le constructeur d'un objet est une méthode spéciale qui est appelée lors de la création de celui-ci, grâce au mot clé new. Il est chargé d'initialiser les valeurs du nouvel objet. Le constructeur doit porter le même nom que la classe et ne retourne aucun type, pas même void. Il peut également y avoir surcharge de constructeurs.

Exemple

class Crayon {
    protected int longueur = 100;    // en millimetres
    protected int diametre = 5;    // en millimetres

    // cree un crayon standard
    public Crayon() {
    }

    // cree un crayon de longueur l et de diametre d
    public Crayon(int l,int d) {
        longueur = l;
        diametre = d;
    }
    
    public int quelleLongueur() {
        return longueur;
    }

    public int quelDiametre() {
        return diametre;
    }
    
    public void changeLongueur(int nouvelleLongueur) {
        longueur = nouvelleLongueur;
    }
        
}
Dans cette exemple, nous déclarons deux constructeurs. Le premier, Crayon() initialise les variables en utilisant les valeurs par défaut. Le deuxième constructeur, Crayon(int l,int d), utilise les valeurs fournies au constructeur pour initialiser l'objet.

Si l'on crée une classe qui hérite d'une autre classe, on peut faire appel à l'un des constructeurs de la super-classe en utilisant le mot clé super. Dans l'exemple ci-dessous, le constructeur CrayonCouleur(int, int, String) fait appel au constructeur de Crayon en appelant super(l,d).

Exemple

class CrayonCouleur extends Crayon {

    protected String couleur = "gris";

    public CrayonCouleur() {
        super();
    }
    
    public CrayonCouleur(int l,int d,String c) {
        super(l,d);    // initialise les variables longueur
                // et diametre en utilisant le
                // constructeur de la "superclass"
        couleur = c;
    }
    
    public CrayonCouleur(String c) {
        super();
        couleur = c;
    }
    
    public String quelleCouleur() {
        return couleur;
    }

    public void changeCouleur(String nouvelleCouleur) {
        couleur = nouvelleCouleur;
    }
}
Notons que l'appel au constructeur super() doit être la première instruction du bloc, et qu'il doit même figurer avant la déclaration de variables.
Index général - Index concepts - Règles BNF
© 1996, DIP Genève, Alexandre Maret & Jacques Guyot
page générée Fri Jun 21 15:40:49 MET DST 1996