<java>pb avec prg polymorphisme
domxaline
-
domxaline -
domxaline -
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
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.length && this.nbreHabitant>=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");
}
}
}
A voir également:
- <java>pb avec prg polymorphisme
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
4 réponses
Bonjour,
la réponse à ta question est dans :
Il faut regarder comment est défini le constructeur de la classe Ville :
Il s'agit le compilateur attend des paramètres du type (String,String,int) et toi, en écrivant
tu donnes comme paramètre (String,int,String).
Il suffit d'inverser tab2[i] et "france".
la réponse à ta question est dans :
The constructor Ville(String, int, String) is undefined
Il faut regarder comment est défini le constructeur de la classe Ville :
public Ville(String pNom,String pPays,int pNbre)
Il s'agit le compilateur attend des paramètres du type (String,String,int) et toi, en écrivant
Ville V=new Ville(tab[i],tab2[i],"france");
tu donnes comme paramètre (String,int,String).
Il suffit d'inverser tab2[i] et "france".
public Ville(String pNom,String pPays,int pNbre) ca c est ton contructeur de la classe ville
ds main tu donnes un autre contructeur
Ville V=new Ville(tab[i],tab2[i],"france"); ki n est meme pas definir ds la classe ville
le compiler regarde seulement le types des variables
dc pour lui new Ville(String a,int b,String c) est different de new Ville(String a,String b,int a)
ok change simplement l ordre de tes parametres
Ville v=new Ville( tab[i],"france",tab2[i])
ds main tu donnes un autre contructeur
Ville V=new Ville(tab[i],tab2[i],"france"); ki n est meme pas definir ds la classe ville
le compiler regarde seulement le types des variables
dc pour lui new Ville(String a,int b,String c) est different de new Ville(String a,String b,int a)
ok change simplement l ordre de tes parametres
Ville v=new Ville( tab[i],"france",tab2[i])
mais j'ai un pb dans le résultat
le resultat est le suivant:
Marseille est une ville de france,elle comporte:123456=>elle est donc de categorie
Lille est une ville de france,elle comporte:78456=>elle est donc de categorie:C
Caen est une ville de france,elle comporte:654987=>elle est donc de categorie:E
Lyon est une ville de france,elle comporte:75832165=>elle est donc de categorie:A
==>>Sarkoest son president
Paris est une ville de france,elle comporte:1594=>elle est donc de categorie:A
==>>Sarkoest son president
Nantes est une ville de france,elle comporte:213=>elle est donc de categorie:A
==>>Sarkoest son president
normalement le résultat pour le Lyon et paris doit avoir
lyon est le catégorie H
paris est le catégorie B
où est ce que je puis faire erreur?
AIDEZ MOI s'il vous plaît