cashmoney
March 9th, 2009, 11:06 AM
Hi, beginner in java I have a littles problems with my classes when I implant by aggregation my class "Enfant" on my Class "Salarie".
Ps: I used php [php] because I would like my codes be viewed
Class SALARIE
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() ;
}
}
Class ENFANT
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+", "+refSalarie;
}
}
In my main Class to test my classes I have
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);
}
}
When I compile it, this my result.
TO STRING SALARIE : 2, 2, 7, forum- Don- 59240, 35000.0, []
The report is that I see [] instead of informations about my class "Enfant" bound to our "Salarie". And if you have to notice, my vector which I declared more, it was twice declared there private and then in my builder of initialization of my class Salarie. when I delete my vector in my builder of inistialization, I have errors and lot of exceptions. I give you result there.
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)
Thanks for your help!!!
Ps: I used php [php] because I would like my codes be viewed
Class SALARIE
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() ;
}
}
Class ENFANT
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+", "+refSalarie;
}
}
In my main Class to test my classes I have
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);
}
}
When I compile it, this my result.
TO STRING SALARIE : 2, 2, 7, forum- Don- 59240, 35000.0, []
The report is that I see [] instead of informations about my class "Enfant" bound to our "Salarie". And if you have to notice, my vector which I declared more, it was twice declared there private and then in my builder of initialization of my class Salarie. when I delete my vector in my builder of inistialization, I have errors and lot of exceptions. I give you result there.
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)
Thanks for your help!!!