On a vu dans le TP précédent qu'une méthode d'instance correspond à un message qu'on envoie à une instance d'une classe (un objet).
La plupart des méthodes qu'on est amené à écrire sont des méthodes d'instance. Quelquefois, cependant, on a besoin d'écrire des méthodes de classe. Une méthode de classe correspond à un message qu'on envoie à une classe, pas à un objet.
Par exemple, pourquoi demander à un livre en particulier de comparer 2 autres livres? Cette comparaison ne dépend pas d'un livre en particulier. Il vaut mieux s'adresser à la classe Livre
. La classe doit contenir une méthode dite "de classe", c'est-à-dire une méthode qui correspond à un message qu'on envoie à la classe et pas à une instance. Le mot clé Java "static
" doit être ajouté dans l'en-tête d'une méthode pour indiquer que la méthode est une méthode de classe et pas une méthode d'instance.
Exemple :
public static int compare2(Livre l1, Livre l2) { ... }
On envoie le message à la classe avec la notation pointée, comme pour les messages envoyés à une instance. Avant le point, on écrit le nom de la classe à qui on envoie le message. Par exemple, int v = Livre.compare(livre1, livre2)
.