Les six types de relations entre classes en Java

Héritage

L'héritage est une relation où une classe enfant étend une classe parente, en utilisant le mot-clé extends. Cela modélise une relation « est un ». Exemple :

public class Voiture extends Vehicule {
    // Corps de la classe
}

En diagramme UML, cette relation se représente par une flèche à tête creuse avec une ligne continue.

Implémentation

L'implémentation définit une relation entre une classe et une interface, marquée par le mot-clé implements. C'est également une relation « est un ». Illustration :

public interface ComportementSonore {
    void produireSon();
}

public class Chien implements ComportementSonore {
    @Override
    public void produireSon() {
        System.out.println("Aboiement!");
    }
}

Dans UML, cela est endiqué par une flèche à tête creuse avec une ligne pointillée.

Dépendance

La dépnedance est une relation d'utilisation, de type « utilise », généralement temporaire et faible. Par exemple, un étudiant utilise un livre pour étudier, mais cette relation n'est pas permanente.

public class Etudiant {
    public void lireLivre(Livre livre) {
        System.out.println("Lecture du livre");
    }
}

public class Livre {
}

En UML, une flèche avec une ligne pointillée pointe de la classe utilisante vers la classe utilisée, visible dans les paramètres, valeurs de retour ou variables locales.

Association

L'association représente une liaison forte et durable entre classes, comme entre une personne et ses vêtements. Elle peut être unidirectionnelle ou bidirectionnelle.

class Personne {
    private Vetement vetement;
    public Vetement getVetement() {
        return vetement;
    }
    public void setVetement(Vetement vetement) {
        this.vetement = vetement;
    }
}

class Vetement {}

Dans un diagramme UML, on utilise une flèche avec une ligne continue reliant les classes, avec des annotations de rôles et de multiplicités.

Agrégation

L'agrégation décrit une reelation « partie-tout » où la partie peut exister indépendamment du tout. Par exemple, un moteur appartient à une voiture, mais peut être réutilisé ailleurs.

class Voiture {
    private Moteur moteur;
    public Voiture(Moteur moteur) {
        this.moteur = moteur;
    }
}

class Moteur {}

En UML, ceci est symbolisé par un losange creux avec une ligne continue, le losange côté agrégé.

Composition

La composition est une forme d'agrégation forte où les parties partagent le même cycle de vie que le tout. Par exemple, un cerveau est intrinsèquement lié à une personne.

class Personne {
    private Cerveau cerveau;
    
    public Personne() {
        cerveau = new Cerveau();
    }
}

class Cerveau {}

Dans UML, cela se représente par un losange plein avec une ligne continue, le losange côté composé.

Étiquettes: Java UML Héritage implémentation dépendance

Publié le 20 juin à 20h53