UPPA - Année universitaire 2015-2016
Département informatique
Licence informatique 3e année
Franck.Barbier@FranckBarbier.com
Examen de 2e session – TOO
Vous n'avez droit à AUCUN document - Répondez sur cette feuille
Soit le programme Java présenté en fin de page.
Question 1 (6 points)
Comparable<T> est une entité prédéfinie de la librairie Java utilisée pour définir Etudiant_L3_info. Cette entité est
:
Une annotation
Une classe
Une interface
Une classe abstraite
Une interface finale
Un type générique
Une méthode générique
Question 2 (6 points) : bien que le programme fonctionne ('2' est affiché à la dernière instruction du programme), montrez où
se trouve la faille principale du programme (indiquez clairement l’endroit en le surlignant ou l’encadrant) et comment y
remédier.
Question 3 (8 points) : après quelques recherches sur Internet, on apprend que la classe String de Java implémente
Comparable<String>. Proposez une solution pour (encore mieux) remédier à la faille identifiée dans la Question 2.
class Etudiant_L3_info implements Comparable<Etudiant_L3_info> {
private String _numero_etudiant_UPPA;
public Etudiant_L3_info(String numero_etudiant_UPPA) {
_numero_etudiant_UPPA = numero_etudiant_UPPA;
}
public int compareTo(Etudiant_L3_info e) {
// On teste si 2 chaînes de caractères sont égales :
if (this._numero_etudiant_UPPA == e._numero_etudiant_UPPA) {
return 0;
}
// On teste si la chaîne de caractères 'this._numero_etudiant_UPPA' est avant 'e._numero_etudiant_UPPA'
dans l'ordre alphabétique :
if (String.CASE_INSENSITIVE_ORDER.compare(this._numero_etudiant_UPPA, e._numero_etudiant_UPPA) < 0) {
return -1;
}
return 1;
}
}
public class Examen {
public static void main(String[] args) {
Etudiant_L3_info Bruno = new Etudiant_L3_info("MC2");
Etudiant_L3_info Franck = new Etudiant_L3_info("PREx1");
java.util.TreeMap<Etudiant_L3_info, Integer> notes_TOO_2_session_2016 = new java.util.TreeMap<>();
Attention, plusieurs cases peuvent être cochées voire zéro.