Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| restricted:mco-2:correction:tp1 [2016/02/10 08:59] – fbrucker | restricted:mco-2:correction:tp1 [2016/02/15 11:20] (Version actuelle) – fbrucker | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Correction TP1 ====== | ||
| + | |||
| + | On suppose que toutes vos classes sont dans le même package : ici '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Pour exécuter ce programme chez vous : | ||
| + | * créez un projet intellij comme pour le TP1 et placez le package de base à '' | ||
| + | * créez une classe '' | ||
| + | * copiez/ | ||
| + | * exécutez votre programme. | ||
| + | |||
| + | ===== Les classes ===== | ||
| + | |||
| + | On montrera la classe Dice et son utilisation avec la méthode main de la classe Main. | ||
| + | |||
| + | ==== Dice.java ==== | ||
| + | |||
| + | <code java> | ||
| + | package com.mco; | ||
| + | |||
| + | import java.util.Random; | ||
| + | |||
| + | public class Dice { | ||
| + | private int position; // Méthode générée automatiquement | ||
| + | private Random randomGenerator; | ||
| + | |||
| + | public Dice(int positionInitiale) { | ||
| + | position = positionInitiale; | ||
| + | randomGenerator = new Random(); | ||
| + | } | ||
| + | |||
| + | public Dice() { | ||
| + | this(1); | ||
| + | } | ||
| + | |||
| + | public int getPosition() { // Méthode générée automatiquement | ||
| + | return position; | ||
| + | } | ||
| + | |||
| + | public void setPosition(int position) { // Méthode générée automatiquement | ||
| + | this.position = position; | ||
| + | } | ||
| + | |||
| + | public void roll() { | ||
| + | position = randomGenerator.nextInt(6) + 1; | ||
| + | } | ||
| + | |||
| + | @Override | ||
| + | public String toString() { // Méthode générée automatiquement | ||
| + | return " | ||
| + | " | ||
| + | ' | ||
| + | } | ||
| + | |||
| + | @Override | ||
| + | public boolean equals(Object o) { // Méthode générée automatiquement | ||
| + | if (this == o) return true; | ||
| + | if (o == null || getClass() != o.getClass()) return false; | ||
| + | |||
| + | Dice dice = (Dice) o; | ||
| + | |||
| + | return getPosition() == dice.getPosition(); | ||
| + | |||
| + | } | ||
| + | |||
| + | @Override | ||
| + | public int hashCode() { // Méthode générée automatiquement | ||
| + | return getPosition(); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | Spécificités : | ||
| + | * deux constructeurs, | ||
| + | * le générateur de nombre aléatoire est placé en attribut privé de la classe. | ||
| + | * les méthodes '' | ||
| + | |||
| + | ==== Main.java ==== | ||
| + | |||
| + | <code java> | ||
| + | package com.mco; | ||
| + | |||
| + | public class Main { | ||
| + | |||
| + | static void testDice() { | ||
| + | System.out.println(" | ||
| + | |||
| + | Dice firstDice = new Dice(); | ||
| + | System.out.println(firstDice); | ||
| + | firstDice.setPosition(5); | ||
| + | System.out.println(firstDice); | ||
| + | |||
| + | Dice secondDice = new Dice(firstDice.getPosition()); | ||
| + | System.out.println(firstDice == secondDice); | ||
| + | System.out.println(firstDice.equals(secondDice)); | ||
| + | firstDice.setPosition(2); | ||
| + | System.out.println(firstDice.equals(secondDice)); | ||
| + | } | ||
| + | |||
| + | static void testRandom() { | ||
| + | System.out.println(" | ||
| + | |||
| + | |||
| + | final int NUMBER_TRIES = 100; | ||
| + | |||
| + | int numberOf1 = 0; | ||
| + | Dice dice = new Dice(); | ||
| + | |||
| + | for (int i=0; i < NUMBER_TRIES; | ||
| + | dice.roll(); | ||
| + | |||
| + | if (dice.getPosition() == 1) { | ||
| + | numberOf1 += 1; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | System.out.println(" | ||
| + | System.out.println(" | ||
| + | } | ||
| + | |||
| + | | ||
| + | testDice(); | ||
| + | testRandom(); | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | Spécificités : | ||
| + | * des commentaires pour vérifier que les réponses sont correctes. | ||
| + | * utilisation de méthodes statiques dans la classe Main pour rendre la lecture plus aisée, | ||
| + | * mot clé '' | ||
| + | * on caste un entier en réel ('' | ||