Voilà, comme vous vous en doutez, je suis en train d'apprendre le Java avec le cours "Apprenez à programmer en Java". J'en suis à la partie sur la POO, le premier sur la construction de Classes.
Voici le code de ma classe main:
public class classeMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
Ville ville = new Ville("Lyon", 654, "France");
Ville ville2 = new Ville("Lille", 123, "France");
ville2.decrisToi();
}
}
Et voici le code de ma classe Ville.java:
public class Ville {
// Création de variables d'instance pour définir les caractéristiques de notre ville
// On déclare les variables en priate pour qu'elles ne soient pas accessibles ailleurs
private String nomVille;
private String nomPays;
private int nbHabitants;
private char categorie;
// Constructeur par défaut
// Attention, les constructeurs d'une classe doivent porter le même nom que la classe.
public Ville() {
System.out.println("Création d'une ville !");
nomVille = "Inconnue";
nomPays = "Inconnu";
nbHabitants = 0;
this.setCategorie();
}
// Constructeur avec paramètres
// On ajoute le lettre p devant les paramètres
public Ville(String pNomVille, int pNbHabitants, String pNomPays) {
System.out.println("Création d'une ville avec des paramètres");
nomVille = pNomVille;
nbHabitants = pNbHabitants;
nomPays = pNomPays;
this.setCategorie();
}
// ************** ACCESSEURS **************
/*
* L'accesseur permet d'accéder aux variables en lecture, bien que celles-ci soient en mode
* "private". Ainsi pourrons-nous afficher leurs contenus avec cette méthode.
* ATTENTION : Les accesseurs DOIVENT être de même type que la variable qu'ils retournent
*/
public String getNom() {
return nomVille;
}
public String getNomPays() {
return nomPays;
}
public int getNbHabitants() {
return nbHabitants;
}
public char getCategorie() {
return categorie;
}
// **************** MUTATEURS ****************
/* Le mutateur est une méthode permettant de pouvoir modifier le contenu d'une variable bien
* que celle-ci soit en mode "private". Cela permet donc de garder une certaine sécurité quant
* contenu de base d'une variable d'instance.
* Cette méthode permet d'éviter de modifier le contenu de la variable d'instance directement
* dans les variables définassants la classe.
*
* ATTENTION : Les mutateurs DOIVENT être de type VOID car ils se contentent seulement de
* mettre la variable à jour.
*/
public void setNom(String pNom) {
nomVille = pNom;
}
public void setNomPays(String pNomPays) {
nomPays = pNomPays;
}
public void setNbHabitants(int pNbHabitants) {
nbHabitants = pNbHabitants;
this.setCategorie();
}
//Définit la catégorie de la ville
private void setCategorie() {
int bornesSuperieures[] = {0, 1000, 10000, 100000, 500000, 1000000, 5000000, 10000000};
char categories[] = {'?', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'};
int i = 0;
while (i < bornesSuperieures.length && this.nbHabitants > bornesSuperieures[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.nbHabitants+" habitant(s) => elle est donc de catégorie : "+this.categorie;
}
//Retourne une chaîne de caractères selon le résultat de la comparaison
public String comparer(Ville v1){
String str = new String();
if (v1.getNbHabitants() > this.nbHabitants)
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;
}
}
Mon problème est le suivant: lorsque je compile mon code et que j'appelle ma méthode decrisToi(), la console me dit qu'il a bien crée la ville avec ses paramètre, mais il ne m'affiche pas la description...
J'ai le même problème avec la méthode comparer().
Cela fait plus d'une heure que je cherche mon erreur et je ne la trouve pas. Eclipse ne me dit pas non plus qu'il y a une erreur... Alors que dois-je faire?
Oxygen05, merci beaucoup, c'était ça, j'avais pas fait attention et j'ai honte que ce soit quelque chose d'aussi basique. Merci beaucoup
P77
Problème affichage decrisToi() en POO
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
P77
P77