Tout simple, mais ça ne marche pas - Java - Programmation
Marsh Posté le 04-05-2009 à 11:56:17
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
Marsh Posté le 04-05-2009 à 12:09:19
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(){ |
Ca marche beaucoup mieux !
Merci encore pour le coup de main
Marsh Posté le 04-05-2009 à 17:26:30
nan, un getter doit retourner,
tu dois donc faire System.out.println(b.getNom());
Marsh Posté le 04-05-2009 à 11:51:13
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
Dans le fichier exam.java :
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 :
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 :
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