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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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)