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
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
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.