Composition et agregation
	
	
		Bonjour, débutant en java j'ai un souci avec mes classes lorsque j'implante par agrégation ma classe enfant sur ma classe Salarié.
Classe SALARIE
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
   |  
public class Salarie {
	private static int compteur = 0;
	protected int matricule;
	protected int categorie;
	protected int service;
	protected String nom;
	protected double salaire;
	private Vector listeEnfants = new Vector ();
             private Adresse adrSal = new Adresse();
 
public Salarie(int inMatricule, int inCategorie, int inService,
	String inNom, double inSalaire) throws SalaireException,
	CategorieException {
	compteur++;
	if (inSalaire < 0)
	throw new SalaireException(inSalaire);
	if ((inCategorie != 1)&&(inCategorie!=2)&& (inCategorie != 3)) 
	throw new CategorieException(inCategorie);
	else {
	this.matricule = inMatricule;
	this.categorie = inCategorie;
	this.service = inService;
	this.nom = inNom;
	this.salaire = inSalaire;
	adrSal.setNomRue("Don");
	adrSal.setCodePostal(59240);
	Vector listeEnfants = new Vector ();
	listeEnfants.add(new Enfant("www","zzzz","124528",this));
	}
public String toString() {
return matricule + ", " + categorie + ", " + service + ", " + nom+", "+adrSal.toString()+ ", " + salaire +", "+ listeEnfants.toString() ;
	}
} | 
 Classe ENFANT
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
   |  
public class Enfant {
	private static int compteur = 0;
	private String nom;
	private String prenom;
	private String dateNaiss;
	private Salarie refSalarie;
 
	public Enfant(String inNom, String inPrenom, String inDateNaiss,
	Salarie inRefSalarie) {
	compteur++;
	this.nom = inNom;
	this.prenom = inPrenom;
	this.dateNaiss = inDateNaiss;
	this.refSalarie = inRefSalarie;
	}
	public String toString()
	{
	return nom+", "+prenom+", "+dateNaiss;
	}
} | 
 mon class test avec main
	Code:
	
1 2 3 4 5 6 7 8 9
   |  
import java.util.*;
public class TestSalarie {
	public static void main(String[] argv) throws SalaireException, CategorieException {
 
Salarie sal1= new Salarie(2, 2, 7, "forum", 35000.00);
System.out.println("TO STRING SALARIE : "+sal1);
}
} | 
 Quand je teste, voici le résultat
	Code:
	
1 2
   | 
TO STRING SALARIE : 2, 2, 7, forum- Don- 59240, 35000.0, []  | 
 le constat est que il m'afiiche [] au lieu de me donner l'information sur la classe enfant lié à notre salarié.
et si vous avez remarquer, mon vector que j'ai déclaré plus, il a été déclaré 2 fois. en private et ensuite dans mon constructeur d'initialisation de ma classe Salarie. quand je rétire mon vector dans mon constructeur d'inistialisation, j'ai des erreurs et des tonnes d'exceptions. je vous donne en résulat.
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
   |  
Exception in thread "main" java.lang.StackOverflowError
	at sun.misc.FloatingDecimal.dtoa(Unknown Source)
	at sun.misc.FloatingDecimal.<init>(Unknown Source)
	at java.lang.AbstractStringBuilder.append(Unknown Source)
	at java.lang.StringBuilder.append(Unknown Source)
	at Object.Salarie.toString(Salarie.java:132)
	at java.lang.String.valueOf(Unknown Source)
	at java.lang.StringBuilder.append(Unknown Source)
	at Object.Enfant.toString(Enfant.java:34)
	at java.lang.String.valueOf(Unknown Source)
	at java.lang.StringBuilder.append(Unknown Source)
	at java.util.AbstractCollection.toString(Unknown Source)
	at java.util.Vector.toString(Unknown Source)
	at Object.Salarie.toString(Salarie.java:132)
	at java.lang.String.valueOf(Unknown Source)
	at java.lang.StringBuilder.append(Unknown Source)
	at Object.Enfant.toString(Enfant.java:34)
	at java.lang.String.valueOf(Unknown Source)  |