Accueil
 Sommaire du cours
 1  Introduction à Java
 2  Concepts de bases de Java
 3  Classes et objets en Java
 3.1  Classe
 3.2  Objet
 3.3  Attributs et méthodes de classe
 3.4  Association entre classes
 3.4.1  Exemple d'association
 3.4.2  Association entre classes en Java
 Questions
 4  Généralisation spécialisation en Java
 5  Organisation des sources Java
 6  API Java
 7  Exceptions en Java
 8  Concepts objets avancés en Java
 Bibliographie

 Contacts

W3C validator

Département INF  
 Conception et programmation orientées objet


3.4.1 Exemple d’association
 
package studsorg; 
public class Personne { 
3    private String nom, prenom; 
    private int nbParticipations = 0, nbOrganisations = 0; 
    private Scrutin[] scrutinsOrganises ; 
    public Personne(final String nom, final String prenom) { 
7        this.nom = nom; this.prenom = prenom; 
        scrutinsOrganises = new Scrutin[10]; 
    } 
    public Scrutin organiserScrutin(final String nom){ 
11        Scrutin s = new Scrutin(nom); 
        scrutinsOrganises[nbOrganisations] = s; 
        nbOrganisations ++; 
        return s; 
15    } 
    public String toString() { 
        return getClass().getName() + ""+nom+""+prenom+"nbp" 
                + nbParticipations + "nbo" + nbOrganisations; 
19    } 
}
 
package studsorg; 
public class Scrutin{ 
    private String nomScrutin; 
4    public Scrutin(final String nom) { 
        nomScrutin = nom; 
    } 
    /* @see java.lang.Object#toString()   */ 
8    @Override 
    public String toString() { 
        return "Scrutin[nomScrutin=" + nomScrutin + "]"; 
    } 
12 
}
 
import studsorg.*; 
public class InitScrutin { 
3  public static void main(final String[] args) { 
        Personne p;                            // reference 
        p = new Personne("Dupont", "Julien");  // instance creation 
        Scrutin bde = p.organiserScrutin("Electionbde2010"); 
7        System.out.println(bde); 
  } 
}

    précédent     suivant 


Pour modéliser la relation avec les scrutins organisés, nous ajoutons à la classe Personne un tableau de références vers des objets de la classe Scrutin. Le nombre d’entrées valides dans le tableau, est contenu dans la variable nborganisations.

La taille du tableau est initialisée à 10 dans le constructeur à la ligne 8 de la classe Personne.

Les éléments du tableau sont affectés lorsque le participant organise un nouveau scrutin.

C’est la méthode organiserScrutin qui doit créer l’objet de type Scrutin. Pour que cet objet puisse initialiser la relation dans le sens inverse, il doit recevoir la référence sur l’objet qui a fait appel à cette méthode. C’est le rôle du second paramètre du constructeur.

Dans la classe Scrutin, le constructeur reçoit en argument la référence vers l’organisateur du scrutin et la mémorise dans l’attribut organisateur à la ligne 8.

La classe InitScrutin montre un exemple d’utilisation des deux classes.

Christian Bac, Denis Conan, Télécom SudParis, CSC 4002, Octobre 2015