Download Java program Universite.Java.zip
public class Universite<E extends Etudiant> { private final java.util.Set<E> _etudiants = new java.util.HashSet<>(); Universite(E... etudiants) { for (E e : etudiants) { _etudiants.add(e); } } } … class Personne { /* ... */ } public class Etudiant extends Personne { private final String _n_etudiant; private final String _n_INSEE; Etudiant(String n_etudiant, String n_INSEE) { this._n_etudiant = n_etudiant; this._n_INSEE = n_INSEE; } @Override public boolean equals(Object etudiant) { if (etudiant == null || this.getClass() != etudiant.getClass()) { return false; } if (this == etudiant) { return true; } final Etudiant e = (Etudiant) etudiant; if (this._n_INSEE.equals(e._n_INSEE)) { return true; } return false; } @Override public int hashCode() { return this._n_INSEE.hashCode(); } public static void main(String parametres[]) { Etudiant XX = new Etudiant("1", "2000164444555"); Etudiant XY = new Etudiant("2", "1010264222333"); Etudiant XZ = new Etudiant_etranger("3", "", "CODE PAYS ORIGINE"); Etudiant_etranger XW = new Etudiant_etranger("4", "", "AUTRE CODE PAYS ORIGINE"); Universite<Etudiant> Mon_universite = new Universite<>(XX, XY, XZ, XW); } } … public class Etudiant_etranger extends Etudiant { private final String _id_pays_origine; // Identifiant propre au pays car n°INSEE n'existe probablement pas... Etudiant_etranger(String n_etudiant, String n_INSEE, String id_pays_origine) { // Question 1 this._id_pays_origine = id_pays_origine; } @Override public boolean equals(Object etudiant) { // Question 5 } @Override public int hashCode() { // Question 5 } }