cs_domxaline
Messages postés327Date d'inscriptionjeudi 21 août 2008StatutMembreDernière intervention10 mai 2012
-
30 janv. 2010 à 12:11
cs_domxaline
Messages postés327Date d'inscriptionjeudi 21 août 2008StatutMembreDernière intervention10 mai 2012
-
5 févr. 2010 à 17:03
Bonjour,
j'ai essayé le prg suivant;en compilant j'ai erreur suivant
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The constructor Ville(String, int, String) is undefined
at Mypackage1.Sdz1.main(Sdz1.java:19)
aidez moi s'il vous plaît
package Mypackage1;
public class Capitale extends Ville
{
private String president;
//constructeur par defaut
public Capitale()
{
//ce mot clé appelle le constructeur de la classe mère
super();
president="aucun";
}
//Constructeur d'initialisation de capitale
public Capitale(String nom,int hab,String pays,String president)
{
//super(nom,hab,pays);
this.nomVille=nom;
this.nomPays=pays;
this.nbreHabitant=hab;
this.president=president;
}
//Description d'une capitale
public String decrisToi()
{
String str=super.decrisToi()+"\n \t==>>"+this.president+"est son president";
return str;
}
//return le nom du president
public String getPresident()
{
return president;
}
//definit le nom du president
public void setPresident(String president)
{
this.president=president;
}
}
package Mypackage1;
public class Ville
{
/*variable publiques qui comptent les instance*/
public static int nbreInstance=0;
/*variable privée qui comptera aussi les instances*/
protected static int nbreInstanceBis=0;
/*Stocke le nom de notre ville*/
protected String nomVille;
/*Stocke le nom du pays de notre ville*/
protected String nomPays;
/*Stocke le nombre d'habitants de notre ville*/
protected int nbreHabitant;
//Stocke le type de notre ville
protected char categorie;
//Constructeur par défaut*/
public Ville()
{
//on incremente nos variables à chaque appel aux constructeurs
nbreInstance++;
nbreInstanceBis++;
nomVille = "Inconnu";
nomPays = "Inconnu";
nbreHabitant=0;
this.setCategorie();
}
//constructeur d'initialisation
public Ville(String pNom,String pPays,int pNbre)
{
//on incremente nos variables à chaque appel aux constructeurs
nbreInstance++;
nbreInstanceBis++;
nomVille=pNom;
nomPays=pPays;
nbreHabitant=pNbre;
this.setCategorie();
}
//*************************************************// ACCESSEURS
//*************************************************
public static int getNombreInstanceBis()
{
return nbreInstanceBis;
}
//Retourne le nom de la ville
public String getNom()
{
return nomVille;
}
//Retourne le nom du pays
public String getNomPays()
{
return nomPays;
}
//Retourne le nombre d'habitants
public int getNombreHabitant()
{
return nbreHabitant;
}
//Retourne la categorie de la ville
public char getCategorie()
{
return categorie;
}
//*************************************************// MUTATEURS //*************************************************
//Definit le nom de la ville
public void setNom(String pNom)
{
nomVille=pNom;
}
//Definit le nom du pays
public void setNomPays(String pPays)
{
nomPays=pPays;
}
//Definit le nombre d'habitants
public void setNombreHabitant(int nbre)
{
nbreHabitant=nbre;
this.setCategorie();
}
//*************************************************// METHODES DE CLASSE //*************************************************
//Definit la categorie de la ville
private void setCategorie()
{
int bornesSuperieurs[]={0,1000,10000,100000,500000,1000000,5000000,10000000};
char categories[]={'?','A','B','C','D','E','F','G','H'};
int i=0;
while(i=bornesSuperieurs[i])
i++;
this.categorie=categories[i];
}
//Retourne la description de la ville
public String decrisToi()
{
return "\t"+this.nomVille+" est une ville de "+this.nomPays+",elle comporte:"+this.nbreHabitant+"=>elle est donc de categorie:"+this.categorie;
}
//Retourne une chaîne de caracteres selon le resultat de la comparaison
public String comparer (Ville v1)
{
String str=new String();
if (v1.getNombreHabitant()>this.nbreHabitant)
str=v1.getNom()+"est une ville plus peuplée que"+this.nomVille;
else
str=this.nomVille+" est une ville plus peuplée que "+v1.getNom();
return str;
}
}
package Mypackage1;
public class Sdz1
{
public static void main(String[] args)
{
// def d'un tableau de ville null
Ville[]tableau=new Ville[6];
//definition d'un tableau de noms de villes et d'un tableau de nombres d'habitants
String[] tab={"Marseille","Lille","Caen","Lyon","Paris","Nantes"};
int[] tab2={123456,78456,654987,75832165,1594,213};
//les 3 premiers éléments du tableau seront des Villes,et le reste,des Capitales
for(int i=0;i<6;i++)
{
if(i<3)
{
Ville V=new Ville(tab[i],tab2[i],"france");
tableau[i]=V;
}
else
{
Capitale C=new Capitale(tab[i],tab2[i],"france","Sarko");
tableau[i]=C;
}
}
//il ne nous reste plus qu'a décrire tout notre tableau
for(Ville v:tableau)
{
System.out.println(v.decrisToi()+"\n");
}
}
}
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 1 févr. 2010 à 16:24
Salut,
Le mieux qu'en tu as des erreurs d'algorithme comme celui-là, c'est de mettre un point d'arrêt pour voir ce qui se passe... ici en l'occurence, il ne passe pas dans le setCategorie pour une Capitale...
______________________________________
DarK Sidious
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 1 févr. 2010 à 19:54
Salut,
C'est pas en te donnant la ligne à corriger que tu progresseras... apparement, tu n'as toujours pas compris cà... et à chaque fois que tu as un petit problème, tu reviens nous voir avec des questions où tu perdrais moins de temps si tu comprenais ce que tu fais.
Je t'ai donné l'astuce : "mettre un point d'arrêt pour voir ce qui se passe"
______________________________________
DarK Sidious
cs_domxaline
Messages postés327Date d'inscriptionjeudi 21 août 2008StatutMembreDernière intervention10 mai 20122 1 févr. 2010 à 20:04
j'ai corrigé ainsi:
package Mypackage1;
public class Capitale extends Ville
{
private String president;
//constructeur par defaut
public Capitale()
{
//ce mot clé appelle le constructeur de la classe mère
super();
this.categorie=categorie;
president="aucun";
}
//Description d'une capitale
public String decrisToi()
{
String str=super.decrisToi()+"\n \t==>>"+this.president+"est son president";
return str;
}
//return le nom du president
public String getPresident()
{
return president;
}
//definit le nom du president
public void setPresident(String President()
{
this.president=president;
}
}
package Mypackage1;
public class Sdz1
{
public static void main(String[] args)
{
// def d'un tableau de ville null
Ville[]tableau=new Ville[6];
//definition d'un tableau de noms de villes et d'un tableau de nombres d'habitants
String[] tab={"Marseille","Lille","Caen","Lyon","Paris","Nantes"};
int[] tab2={123456,78456,654987,75832165,1594,213};
//les 3 premiers éléments du tableau seront des Villes,et le reste,des Capitales
for(int i=0;i<6;i++)
{
if(i<3)
{
Ville V=new Ville(tab[i],"france",tab2[i]);
tableau[i]=V;
}
else
{
Capitale C=new Capitale(tab[i],tab2[i],"france","Sarko");
tableau[i]=C;
}
}
//il ne nous reste plus qu'a décrire tout notre tableau
for(Ville v:tableau)
{
System.out.println(v.decrisToi()+"\n");
}
}
}
maintenant il y a une erreur suivant dans la class Sdz1
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The constructor Capitale(String, int, String, String) is undefined