Modéliser un élève comparable à un autre                        

Modéliser un élève comparable à un autre

Cet exercice fait suite à l'exercice Modéliser un élève, qu'il faut donc faire avant celui-ci.

Il s'agit ici de compléter la classe Eleve pour faire en sorte d'avoir une classe qui implémente l'interface java.lang.Comparable<T>. C'est une interface générique, comme l'indique le <T> mais il n'y a pas grand-chose à savoir sur le sujet pour l'utiliser. Il faudra, en implémentant l'interface, indiquer à la place du T le type des objets qu'on veut comparer entre eux.

L'interface Comparable<T> déclare une seule méthode :
    public int compareTo(T o);
Quand cette méthode est implémentée, elle doit retourner une valeur strictement négative, nulle ou strictement positive selon que l'objet concerné (celui qui correspond à la référence this) est plus petit que l'objet o, égal à l'objet o ou plus grand que l'objet o.

On comparera les élèves selon leur moyenne (ou, si vous préférez, selon l'ordre alphabétique).
Pour cela, vous allez reprendre la classe Eleve écrite précédemment pour la transformer en une classe qui implémente l'interface java.lang.Comparable<T>. Il faudra pour cela compléter l'en-tête de la classe Eleve par "implements Comparable<Eleve>". Il faudra de plus définir la méthode compareTo déclarée par l'interface Comparable. Cette méthode est à nouveau générique ; si la classe implémente Comparable<Eleve>, le paramètre de la méthode doit être de type Eleve, l'en-tête est donc :
    public int compareTo(Eleve autreEleve)
Le code de la méthode doit respecter la fonctionnalité décrite plus haut.

Après avoir ainsi complété la classe Eleve, modifiez aussi la méthode main de la classe TestEleve pour tester la méthode compareTo.

Corrigé

Eleve.java obtenue en modifiant la classe Eleve ;
TestEleve.java pour tester nouvelle classe Eleve
© Irène Charon, Télécom ParisTech 2011