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.
- Notions
- Questions
- Ranger et relier
- Comprendre
Quelques cartes du deck
Traduction d'une visibilité : de quoi s'agit-il ?
Voir la réponse
+devientpublic,-devientprivate,#devientprotected, 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,
Equipeest reliée àJoueurpar une association navigable deEquipeversJoueur, avec0..*du côté deJoueur. Quelle déclaration écrit-on dansEquipe?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, etstaticrendrait 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→Lignedonne un attribut dansCommandeet aucun dansLigne. Sans flèche, on laisse le sens ouvert ou on met un attribut des deux côtés.Une association est navigable de
CommandeversLigneseulement. Pourquoi n'écrit-on un attribut que dansCommande?- 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
Lignedevrait forcément être public - Un attribut dans
Lignecré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
Lignecré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.