Du diagramme au code

Traduire un diagramme de classes en code Java : visibilités, attributs, association vers un attribut ou une collection selon la multiplicité, navigabilité, généralisation, réalisation et composition.

  • 21 cartes
  • 4 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Comprendre

Quelques cartes du deck

  • Traduction d'une visibilité : de quoi s'agit-il ?

    Voir la réponse

    + devient public, - devient private, # devient protected, et ~ n'a pas de mot-clé : on n'écrit rien.

    Le niveau par défaut de Java, sans mot-clé, est précisément la visibilité de paquetage.

  • Dans le diagramme, Equipe est reliée à Joueur par une association navigable de Equipe vers Joueur, avec 0..* du côté de Joueur. Quelle déclaration écrit-on dans Equipe ?

    • private List<Joueur> joueurs = new ArrayList<>();
    • private Joueur joueur;
    • private List<Equipe> joueurs = new ArrayList<>();
    • private static Joueur joueurs;
    Voir la réponse

    private List<Joueur> joueurs = new ArrayList<>();

    Zéro ou plusieurs joueurs : la borne haute dépasse 1, donc une collection d'éléments Joueur, créée vide pour qu'elle soit utilisable. Une référence simple ne peut en tenir qu'un seul, et static rendrait l'attribut commun à toutes les équipes.

  • Un membre souligné se traduit par … ; un membre en italique, par ….

    Voir la réponse

    Un membre souligné se traduit par static ; un membre en italique, par abstract.

    Un membre abstrait oblige sa classe à être abstraite aussi : son nom passe lui-même en italique dans la boîte.

  • Navigabilité : de quoi s'agit-il ?

    Voir la réponse

    Sens dans lequel un objet peut atteindre l'autre, montré par une flèche ouverte au bout du trait ; seul l'objet de départ garde une référence.

    Commande → Ligne donne un attribut dans Commande et aucun dans Ligne. Sans flèche, on laisse le sens ouvert ou on met un attribut des deux côtés.

  • Une association est navigable de Commande vers Ligne seulement. Pourquoi n'écrit-on un attribut que dans Commande ?

    • La flèche dit quelle classe garde une référence vers l'autre
    • Java interdit que deux classes se référencent l'une l'autre
    • Un attribut placé dans Ligne devrait forcément être public
    • Un attribut dans Ligne créerait une boucle infinie à la construction
    Voir la réponse

    La flèche dit quelle classe garde une référence vers l'autre

    Une référence ne sert que si le code en a besoin. Ajouter un attribut dans Ligne créerait une dépendance inutile et deux références à tenir à jour ; deux classes peuvent pourtant très bien se référencer, quand on le décide.