/** Studente.java -- associa in modo immutabile nome e numero di matricola due oggetti sono uguali quando hanno la stessa matricola Supporta l'ordinamento per matricola e per nome. @author Adriano Luchetta @version 2005 */ public class StudenteEsteso extends Studente { public static final int NOME = 0; public static final int MATRICOLA = 1; private static int ordinamento = MATRICOLA; public StudenteEsteso(String n, int m) {super(n, m);} public int compareTo(Studente s) { if (ordinamento == MATRICOLA) return matricola() - s.matricola(); return nome().compareTo(s.nome()); } public static void ordinaPer(int valore) { if (valore != NOME && valore != MATRICOLA) throw new IllegalArgumentException("Criterio di ordinamento non valido"); ordinamento = valore; } }