Problème Java

Fermé
q.bruneau - 15 oct. 2008 à 21:43
 q.bruneau - 15 oct. 2008 à 22:32
Bonsoir, je viens de terminer un exercice en java et le programme me trouve une erreur que je n'arrive pas du tout à résoudre (je prog sous eclipse)
voilà la ligne qui ne va pas :

public void toString()
{
String str;
if (forfait == true)
{
//Si la personne possède un forfait on retourne une phrase qui l'indique
System.out.println(super.toString() + " a un forfait");
}
else
{
//Sinon on retourne une phrase qui indique qu'elle n'en a pas
System.out.println(super.toString() + " n'a pas de forfait");
}
}

j'ai mis en gras ce que le programme me souligne si quelqu'un à une idée car c'est à rendre demain
merci
A voir également:

7 réponses

je vais te poster tout le prog sa va être long désolé

Classe personne

public class Personne
{
//Déclaration des variables protégées
protected String nom;
protected int age;

//Constructeur de la classe recevant en parametre une chaine et un entier
public Personne(String nom, int age)
{
this.nom = nom;
this.age = age;
}

//Setter de nom
public void setNom(String nom)
{
this.nom = nom;
}

//Setter de age
public void setAge(int age)
{
this.age = age;
}

//Getter de nom
public String getNom()
{
return (nom);
}

//Getter de age
public int getAge()
{
return (age);
}

//Méthode qui permet de retourner une chaine contenant nom et age
public String toString()
{
//On retourne la phrase ainsi créée
return (nom + "(" + age + " ans)");
}


//Programme principal qui utilise les méthodes de la classe
public static void main(String[] args)
{
Personne P = new Personne("Prénom Nom", 22); //Ajout d'une personne

//On affiche nom et age à l'aide des getters
System.out.println("Nom: " + P.getNom());
System.out.println("Age: " + P.getAge());

System.out.println(P.toString()); //Affichage avec appel de toString

P.setNom("Thomas Caillot"); //On change le nom
P.setAge(21); //On change l'age
System.out.println(P.toString()); //Affichage avec appel de toString
}

}

__________________________________________________________________________________________

Classe Skieur

public class Skieur extends Personne
{
//Déclaration d'une variable protégée
protected boolean forfait;

//Constructeur de la classe qui reçoit une chaine, un entier, un booléen
public Skieur(String nom, int age, boolean forfait)
{
super(nom, age); //Construction d'une personne
this.forfait = forfait;
}

//Setter de forfait
public void setForfait(boolean forfait)
{
this.forfait = forfait;
}

//Getter de forfait
public boolean getForfait()
{
return (forfait);
}

//Méthode qui affiche une chaine contenant nom, age
//et si la personne possède ou non un forfait
public void toString()
{
String str;
if (forfait == true)
{
//Si la personne possède un forfait on retourne une phrase qui l'indique
System.out.println(super.toString() + " a un forfait");
}
else
{
//Sinon on retourne une phrase qui indique qu'elle n'en a pas
System.out.println(super.toString() + " n'a pas de forfait");
}
}


//Programme principal qui utilise les méthodes de la classe
public static void main(String[] args)
{
Skieur S = new Skieur("Prénom Nom", 22, true); //Ajout d'un skieur
S.toString(); //Affichage avec appel de toString

S.setForfait(false); //Changement du parametre de forfait
S.toString(); //Affichage avec appel de toString
}

}

__________________________________________________________________________________________

Classe Slalomeur

public class Slalomeur extends Skieur
{
//Déclaration d'une variable privée
private double temps;

//Constructeur recevant en parametre un skieur
public Slalomeur(Skieur S)
{
super(S.nom, S.age, S.forfait);
if (forfait == false)
{
//On affiche un avertissement si le skieur n'a pas de forfait
System.out.println(S.nom + " doit se procurer un forfait avant le début de l'épreuve");
}

temps = 0; //Initialisation du temps à 0
}

//Setter de temps
public void setTemps(double temps)
{
if (forfait == true)
{
//On enregistre le temps si le skieur a un forfait
this.temps = temps;
}
else
{
//Sinon on affiche un avertissement
System.out.println("Le skieur n'a pas de forfait");
}
}

//Getter de temps
public double getTemps()
{
return (temps);
}

//Méthode qui affiche nom, age et temps de course
public void toString()
{
if (forfait == true)
{
//Si le slalomeur a un forfait on affiche la phrase
System.out.println(nom + " (" + age + "): " + temps + " secondes");
}
else
{
//Sinon on affiche un avertissement
System.out.println(nom + " ne peut pas participer sans forfait");
}
}

//Programme principal qui utilise les méthodes de la classe
public static void main(String[] args)
{
Skieur S = new Skieur("Prénom Nom", 22, true); //Ajout d'un skieur
Slalomeur Sl = new Slalomeur(S); //Ajout d'un slalomeur à partir du skieur

Sl.setTemps(188); //On met le temps à 188
Sl.toString(); //On affiche avec toString

Sl.setForfait(false); //On change l'etat du forfait
Sl.setTemps(118); //On essaie de mettre un nouveau temps
Sl.toString(); //Et on affiche pour voir le cas interdit
}

}

___________________________________________________________________________________________

voilà merci d'avance
1
Bonjour,

Il manque des choses, t'as pas tout mis là non ?

Il manque la déclaration du booléen forfait. de "super"???
Chose très bizarre, tu appelles une méthode (toString()) alors que tu es à l'intérieur de celle-ci?. Très bizarre ton code...
Peut être que ton soucis viens que ToString existe déjà dans le framework.
0
juste à l'endroit que j'ai mis en gras au premier post, il n'y a pas d'autres erreurs
0
Moi je fais du C#, pas de Java.

t'es sur que l'on peut faire un System.out.println dans une méthode?
0
hamza_bba Messages postés 78 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 6 août 2009 1
15 oct. 2008 à 22:22
oui on peu faire çà on java
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
oui une methode main pour chaque classe car dans l'exercice il est demander de tester chaque classe a chaque fois, après ne faire qu'une méthode je vois pas trop comment faire
0
hamza_bba Messages postés 78 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 6 août 2009 1
15 oct. 2008 à 22:06
essaye d'écrire les messages d'erreurs qui apparaitre
-1
hamza_bba Messages postés 78 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 6 août 2009 1
15 oct. 2008 à 22:27
je ressent que le souci vient quand tu a définit la méthode main dans chaque classe , ce que je savoir moi qu'il faut définit une seul méthode ,tu es sûr de ça ?
-1