Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1613 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Tout simple, mais ça ne marche pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tout simple, mais ça ne marche pas

n°1880475
wanou85
Posté le 04-05-2009 à 11:51:13  profilanswer
 

Bonjour à tous,
 
voilà, je suis étudiant et je travaille un peu sur du JAVA. Je commence donc un code tout bête ce matin et j'ai 2 choses, pourtant très simples qui ne fonctionnent pas.
Mon code dispose de 2 classes, une exam (main) et une compte qui pour le moment ne comporte qu'un constructeur et un accesseur.
Je ne trouve pas mes erreurs de syntaxe dans ces quelques lignes simplistes. Pouvez vous me dire ce qui cloche ? Merci d'avance :)

  • Je souhaite créer une classe compte ayant, pour chaque objet créé de cette classe, un numéro qui s'incrémente à chaque nouvelle instanciation (l'incrémentation de marche pas).
  • Je souhaite renvoyer le nom du titulaire à l'aide d'un accesseur (rien n'est renvoyé).


 
Dans le fichier exam.java :
 

Citation :

public class exam {
 public static void main(String[] args) {
   
 compte a = new compte();
 System.out.println(a.numCompte); // =0
 a.getNom(); //rien de s'imprime
 
 compte b = new compte();
 System.out.println(b.numCompte); // = 0 au lieu de 1 (après itération)
 b.getNom(); //rien ne s'imprime
   
 }
}


 
Dans le fichier compte.java :

Citation :

public class compte {
 public int numCompte = 0, compteur = 0;
 public String nom;
 
 public compte(){ //constructeur par défaut
  this.numCompte = compteur;
  compteur = compteur +1;
  this.nom = "Inconnu";
 }
 
 public String getNom(){
  return this.nom;
 }
}


 
Ce qui s'affiche à l'exécution :

Citation :

0
0


 
L'incrémentation ne marche pas, et l'accésseur getNom ne retourne rien...
Je ne trouve pas la solution, auriez vous des pistes à me suggérer pour corriger cela ?


---------------
Mieux vaut un tiens que deux tu l'auras
mood
Publicité
Posté le 04-05-2009 à 11:51:13  profilanswer
 

n°1880477
Mario_
Vive le pingouiboulga !!
Posté le 04-05-2009 à 11:56:17  profilanswer
 

numCompte n'est pas statique. Autrement dit, à l'instanciation d'un objet compte, cet objet contient une variable numCompte indépendante des numCompte des autres objets de type Compte.
En mettant numCompte statique, la variable numCompte sera partagée par tous les objets de type Compte et donc tu devrais obtenir ce que tu veux en ce qui concerne l'incrémentation.
Pour b.getNom() qui n'affiche rien, si tu ne lui dis pas d'afficher, justement, ça me semble tout à fait normal [:dawa]


---------------
Soyons ouverts d'esprit, mais pas au point de laisser notre cerveau s'enfuir.
n°1880481
wanou85
Posté le 04-05-2009 à 12:09:19  profilanswer
 

Merci pour la correction, en effet, passer la numCompte en Static règle le problème (je venais de trouver à l'instant :) )
Et c'est vrai que je n'ai jamais demandé à imprimer avec getNom... je vais corriger l'accesseur avec :

Citation :

public void getNom(){
  System.out.println(this.nom);
 }


 
Ca marche beaucoup mieux !
Merci encore pour le coup de main :)


Message édité par wanou85 le 04-05-2009 à 12:10:16

---------------
Mieux vaut un tiens que deux tu l'auras
n°1880702
tomsoft
Posté le 04-05-2009 à 17:26:30  profilanswer
 

nan, un getter doit retourner,  
 
tu dois donc faire System.out.println(b.getNom());


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Tout simple, mais ça ne marche pas

 

Sujets relatifs
script qui ne marche pas sous ieRequête très simple
Probleme de gif animé qui ne marche pas sur internetun programme simple qui marche pas (en If et Else)
texte defilant marche pas sur MAC ... (script simple)1autre solution ?un simple applet java qui ne marche pas
Programmation Palm / Ti-82 simple, comment ça marche ??[ASP] Qu'est ce qui ne marche pas dans mon code ? ( simple )
Boucle simple ki marche pa :'(Template, code simple qui ne marche pas
Plus de sujets relatifs à : Tout simple, mais ça ne marche pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR