Adloun

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

Static ou pas static

Encapsulation, membres de classe et paquets · niveau 1 (application)

Énoncé

Qu'affiche ce programme ? Justifier.


class Truc {
    static int partage = 0;
    int propre = 0;

    Truc() {
        partage++;
        propre++;
    }
}

public class Ex10Prediction {
    public static void main(String[] args) {
        Truc a = new Truc();
        Truc b = new Truc();
        Truc c = new Truc();
        b.propre += 10;
        System.out.println(a.propre + " " + b.propre + " " + c.propre);
        System.out.println(Truc.partage + " " + a.partage);
    }
}

Corrigé

Le programme affiche :


1 11 1
3 3

Chaque objet a son propre attribut propre, mis à par le constructeur, puis est ajouté à celui de b seulement. L'attribut partage existe en un seul exemplaire : les trois constructions l'ont incrémenté trois fois. a.partage désigne ce même attribut ; Java autorise l'écriture, mais elle est trompeuse, car elle laisse croire que l'attribut appartient à a. On écrit toujours Truc.partage.

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 →