programmation Java (école d'ingénieur) · Chapitre 8 · Exercice de TD
Numéros de clients
Encapsulation, membres de classe et paquets · niveau 1 (application)
Énoncé
Écrire une classe Client dont chaque objet reçoit à sa création un identifiant unique, à partir de 1000 et dans l'ordre de création, et une méthode static nombreDeClients(). Quels attributs doivent être static ? Lesquels final ?
Corrigé
Le prochain identifiant à distribuer est commun à tous les clients : il est static. L'identifiant d'un client lui est propre et ne change jamais : il est final, pas static.
class Client {
private static int prochainId = 1000;
private final int id;
private final String nom;
Client(String nom) {
this.nom = nom;
this.id = prochainId;
prochainId++;
}
public int getId() { return id; }
public static int nombreDeClients() { return prochainId - 1000; }
@Override
public String toString() { return "#" + id + " " + nom; }
}
public class Ex5Identifiant {
public static void main(String[] args) {
Client a = new Client("Alice"), b = new Client("Bilal"), c = new Client("Chloé");
System.out.println(a + ", " + b + ", " + c);
System.out.println(Client.nombreDeClients() + " clients");
}
}
#1000 Alice, #1001 Bilal, #1002 Chloé
3 clients
prochainId ne peut pas être final, puisqu'il change à chaque création.
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.