Adloun

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

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 →