Temps de lecture estimé : 15-20min
La classe suivante :
public class Exemple
{
private int x;
protected float y;
public double z;
public Exemple() { ... }
public String toString() { ... }
private void truc(int x) { ... }
protected int machin(int a, String b) { ... }
}
correspond au schéma UML suivant :
Modificateurs d'accès
UML | Java |
---|---|
- |
private |
# |
protected |
+ |
public |
Classes et méthodes abstraites
Un élément abstrait est noté en italique :
public abstract class ClasseAbstraite
{
public String maFonctionPasAbstraite();
public abstract int maFonctionAbstraite();
}
correspond au schéma UML suivant :
Interfaces
Une interface est annotée «interface»
(ce n'est pas obligatoire, mais c'est plus joli) :
public interface Comparable<T>
{
boolean estPlusGrandQue(T autre);
}
correspond au schéma UML suivant :
Il n'est pas obligatoire d'écrire le nom des paramètres, on pourrait très bien faire ceci :
Relations
Relation | UML | Java | En français |
---|---|---|---|
Dépendance | class A { B attribut; } |
A utilise B (relation très vague, faire attention) |
|
Association | class B { void uneFonction(A objA); } |
B effectue des opérations sur A |
|
Aggrégation | class A { B[] elementsB; } |
A est associé à un ou plusieurs B et les B peuvent exister indépendamment de A .Exemple : un utilisateur peut marquer un produit en favori, mais les produits continuent d'exister si l'utilisateur est supprimé. |
|
Composition | class A { B[] elementsB; } |
A est composé de un ou plusieurs B et les B n'existent que tant que A existeExemple : une commande constituée d'une ligne pour chaque produit; les lignes n'existent que tant que la commande existe, et supprimer la commande doit supprimer les lignes. |
|
Généralisation Spécialisation |
class A extends B |
A est un cas particulier de / hérite de B |
|
Réalisation | class A implements B |
A implémente les méthodes de l'interface B |
Merci à Jade pour avoir signalé quelques erreurs