Java probleme affichage via println

Fermé
Kirjava - 30 janv. 2009 à 10:44
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 - 30 janv. 2009 à 13:00
Bonjour,
Je débute en java et j'ai un probleme qui se pose : je défini une String que j'aimerais afficher via un println de mon main. Cependant je n'y arrive pas.
Voici mon script :
package hello_world;

import java.util.*;

public class Hello_World {

public static void main(String[] args) {
System.out.println(tmp); (ceci renvoie une erreur)

}
private List resultats=new ArrayList();
private int note;
private String nom;
public Hello_World(int note,String nom){
this.nom=nom;
this.note=note;
}
public int getnote(){
return note;
}
public String toString()
{
StringBuffer tmp=new StringBuffer();
tmp.append(nom);
tmp.append('\t');
tmp.append(String.valueOf(note));
return tmp.toString();
}

}

Et je voudrais afficher le String créé en fin de script. Comment faire ?
A voir également:

1 réponse

Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
30 janv. 2009 à 13:00
Bonjour Kirjava,

Voici la correction :
package hello_world;

import java.util.*;

public class Hello_World {

 private List resultats=new ArrayList();
 private int note;
 private String nom;
 
 public static void main(String[] args) {
  Hello_World hw = new Hello_World(5, "mon nom");
  System.out.println(hw);
 }

 public Hello_World(int note,String nom){
  this.nom=nom;
  this.note=note;
 }

 public int getnote(){
  return note;
 }

 public String toString() {
  StringBuffer tmp=new StringBuffer();
  tmp.append(nom);
  tmp.append('\t');
  tmp.append(String.valueOf(note));
  return tmp.toString();
 }

} 


La méthode main est une méthode statique, ce qui signifie qu'elle va s'exécuter sans avoir besoin d'instancier ta classe.
Autrement dit, si tu n'instancies pas ta classe comme je le fais ici, tes attributs note et nom n'existent pas. De plus, tu essayais d'afficher tmp, qui dans le contexte de la méthode main n'existe pas (la variable tmp n'existe quand dans la méthode toString() que tu as surchargée, elle n'existe pas en dehors).

Cordialement,
0