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: this
Up: Classes et instances, membres
Previous: Constructeurs
R. Lalement
2000-10-23