Adloun

programmation Java (école d'ingénieur) · Chapitre 7 · Application directe du cours

Prédire l'affichage

Classes et objets · niveau 1 (application)

Énoncé

Sans exécuter le programme, dire ce qu'il affiche. Justifier à l'aide d'un schéma de la mémoire.


class Compteur {
    int valeur;

    void incrementer() { valeur++; }
}

public class Ex2Lecture {
    public static void main(String[] args) {
        Compteur a = new Compteur();
        Compteur b = new Compteur();
        Compteur c = a;
        a.incrementer();
        b.incrementer();
        c.incrementer();
        c = b;
        c.incrementer();
        System.out.println(a.valeur + " " + b.valeur + " " + c.valeur);
        System.out.println((a == c) + " " + (b == c));
    }
}

Corrigé

Il n'y a que deux objets Compteur, créés par les deux new ; appelons-les (désigné au départ par a) et (désigné par b).

  • Compteur c = a; : c désigne .
  • Les trois incrementer() suivants portent sur , et : vaut , vaut .
  • c = b; : c désigne maintenant , et c.incrementer() porte à .

Le programme affiche :


2 2 2
false true

a.valeur est la valeur de , b.valeur et c.valeur celle de ; c et b désignent le même objet, pas c et a.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →