Mission 6: QCM


Question 1: Classe, objets et instances

Soit le code Java suivant

public class PairOfDice {

    public int die1;   // Number showing on the first die.
    public int die2;   // Number showing on the second die.

    /**
     * @pre val1, val2 are valid die values
     * @post creates a pair of dice that are initially
     *       showing the values val1 and val2.
     */
    public PairOfDice(int val1, int val2) {
         die1 = val1;
         die2 = val2;
    }

    /**
     * @pre -
     * @post rolled the dice by setting each of the dice
     *       to be a random number between 1 and 6.
     */
    public void roll() {
         die1 = (int)(Math.random()*6) + 1;
         die2 = (int)(Math.random()*6) + 1;
    }

} // end class PairOfDice

Laquelle des propositions ci-dessous est correcte ?

Question 2: Définition de classe

Laquelle des définitions suivantes définit correctement une classe dont les instances représentent des fractions (num / den), telle que les instructions

Fraction f = new Fraction(3,4);
System.out.println(f.valeur());

imprime le résultat 0.75 ?

Question 3: Initialisation d'objets

Sur base de la définition de la question précédente, que se passe-t-il si on tente de compiler et d'exécuter (séparément) les trois suites d'instructions suivantes ?

Fraction f;
System.out.println(f.valeur());
Fraction f = new Fraction(3, 4);
System.out.println(f.valeur());
Fraction f = null;
System.out.println(f.valeur());
Question 4: Accesseurs et mutateurs

Comment définirait-on un accesseur (getter) et un mutateur (setter) pour la variable d'instance num de la classe Fraction à la question 2, tels qu'utilisés dans l'exemple suivant

Fraction f = new Fraction(3, 4);
System.out.println(f.getNum());  // imprime "3"
f.setNum(5);
System.out.println(f.getNum());  // imprime "5"
Question 5: Constructeurs

Soit la classe suivante

public class Etudiant {
    String nom;
    String matricule;
    boolean bisseur = false;

    // ... méthodes
}

Parmi les définitions de constructeurs suivantes, laquelle est correcte ?

Question 6: Références

Soit la classe Compteur suivante

public class Compteur {
    private int compte;  // le compteur

    public Compteur(int n) {
        compte = n;
    }

    public void ajout(int n) {
        compte = compte + n;
    }

    public int valeur() {
        return compte;
    }
}

Qu'imprime le programme suivant

Compteur c1 = new Compteur(10);
Compteur c2 = new Compteur(20);
c1.ajout(5);
System.out.println(c1.valeur() + "," + c2.valeur());
c1.ajout(10);
c1 = c2;
c2.ajout(20);
System.out.println(c1.valeur() + "," + c2.valeur());
c2 = new Compteur(0);
System.out.println(c1.valeur() + "," + c2.valeur());
Question 7: toString()

Comment écrirait-on une méthode pour la classe Etudiant de la question 5, telle que le code suivant

Etudiant etud = new Etudiant("John Doe", "987612");
System.out.println(etud);

affiche le texte suivant :

John Doe (987612) non-bisseur
Question 8: TextIO

Parmi les portions de programme suivantes, laquelle permet d'imprimer à la console le contenu du fichier README ?

Information

Author(s) Olivier BONAVENTURE
Deadline No deadline
Submission limit No limitation

Sign in