On vous donne la classe DeStats dont voici le corps:
public class DeStats extends De { private int lances; private int[] resultats; /* * @pre s != null; * @post Crée une instance de la classe DeStats * avec comme nom s */ public DeStats(String s) { /* Code non fourni */ } /* * @pre - * @post retourne le tableau des résultats du dé this */ public int[] getResultats() { /* Code non fourni */ } /* * @pre 1 <= n <= 6 * @post retourne le nombre de fois que le dé * a donné comme résultat n */ public int statistique(int n) { return this.resultat[n-1]; } /* * @pre - * @post incrémente le nombre de lancés et le * nombre de fois qu'un chiffre est sorti. * Retourne le chiffre que le dé a donné. */ public int lance() { /* Code non fourni */ } /* * @pre - * @post retourne le nombre de lancés du dé this */ public int getLances() { return this.lances; } /* * @pre - * @post retourne une description du dé sous forme * d'un String. Le format retourné est le nom du * dé suivi des statistique sous forme de tableau */ public String toString() { /* Code non fourni */ } /* * @pre - * @post retourne true si this et o sont deux DeStats identiques */ public boolean equals(Object o) { // A complèter } }
Pour information, la classe De ressemble à ceci :
import java.util.Random; public class De { private String nom; // le nom de ce dé (par exemple sa couleur) protected Random r; // nombre aléatoire /* * @pre nom != null * @post crée l'instance de la classe De ayant comme nom la chaine n * initilisé le générateur de nombres aléatoires */ public De(String n) { nom = n; r = new Random(); } /* * @pre - * @post lance le dé et retourne la valeur du dé */ public int lance() { return r.nextInt(6)+1; } /* * @pre - * @post retourne le générateur de nombres aléatoires utilisé par le dé */ public Random getRandom() { return r; } /* * @pre - * @post retourne le nom du dé */ public String getNom(){ return nom; } /* * @pre n != null * @post modifie le nom du dé qui est maintenant n */ public void setNom(String n){ this.nom = n; } /* * @pre r != null * @post modifie le générateur de nombres aléatoires du dé qui est maintenant r */ public void setRandom(Random r){ this.r = r; } /* * @pre - * @post retourne une chaîne de caractères représentant le dé */ public String toString(){ return this.nom; } /* * @pre - * @post retourne true ssi other est un dé identique à celui-ci (même nom et même générateur aléatoire) */ public boolean equals(Object other) { /* Code non fourni */ } }