next up previous contents index
Next: this Up: Classes et instances, membres Previous: Constructeurs

   
Méthodes

Analogues à des fonctions, les méthodes de la classe rassemblent des instructions qui opèrent sur les instances de la classe. On pourra doter la classe Point d'une méthode translater(), qui a deux paramètres dx et dy, de type double et qui applique à un point une translation selon le vecteur (dx, dy). On invoque une méthode d'une instance en suffixant le nom d'un objet par le nom de la méthode, suivi par ses arguments entre parenthèses : par exemple, on invoque la méthode translater() sur le point p au moyen de l'expression p.translater(1, 1). Dans un langage procédural, on devrait faire figurer le point p comme argument d'une procédure et écrire translater(p, 1, 1). En programmation à objets, on dit parfois que l'on envoie à l'objet p le message translater, avec les arguments 1, 1, selon l'usage consacré par le langage Footnotesizetalk. C'est une erreur d'invoquer une méthode d'un objet qui n'existe pas. Ainsi, l'évaluation de p.translater(1, 2), quand p a été initialisé par null ou n'a pas été initialisé, provoque le déclenchement de l'exception NullPointerException, de la même façon que l'accès à un champ de p :

  Point p = null;
  p.translater(1, 2);   // ERREUR -> NullPointerException

Voici enfin la définition de la classe Point, qui comprend deux champs, deux constructeurs et une méthode :

class Point {
  double x, y;

  Point() {}

  Point(double x, double y) {
    this.x = x;
    this.y = y;
 }

  void translater(double dx, double dy) {
    this.x = this.x + dx;        // x = x + dx
    this.y = this.y + dy;        // y = y + dy
 }
}


next up previous contents index
Next: this Up: Classes et instances, membres Previous: Constructeurs
R. Lalement
2000-10-23