Problème avec constructeurs
Résolu
Coraline
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je débute la programmation Java et je rencontre un problème que je n'arrive pas a résoudre. Je dois créer une classe Compte mais lorsque j'écris :
Le programme me renvoie :
Le numero du premier compte est 1
Le numero du premier compte est 0
Le numero du deuxième compte est 0
Le solde du compte 0 est 0
Le solde du compte 0 est 0
C'est comme si, dès que je crée un nous compte, il écrase l'ancien compte crée et lui donne sa valeur.
Je ne sais pas d'ou ça vient, merci pour votre aide.
Je débute la programmation Java et je rencontre un problème que je n'arrive pas a résoudre. Je dois créer une classe Compte mais lorsque j'écris :
public class Compte {
private static int numero;
private static int solde;
private static float debitMax;
public static void main(String[] args) {
Compte c1,c2;
c1=new Compte(1,500,650);
System.out.println("Le numero du premier compte est "+c1.numero);
c2=new Compte(2,600,400);
System.out.println("Le numero du premier compte est "+c1.numero);
System.out.println("Le numero du deuxième compte est "+c2.numero);
System.out.println("Le solde du compte "+c1.numero+" est "+c1.solde);
System.out.println("Le solde du compte "+c2.numero+" est "+c2.solde);
}
public Compte (int UnNumero, int SoldeInitial, float debitMaxi) //constructeur
{
numero = UnNumero;
debitMax=debitMaxi;
solde = SoldeInitial;
}
}
Le programme me renvoie :
Le numero du premier compte est 1
Le numero du premier compte est 0
Le numero du deuxième compte est 0
Le solde du compte 0 est 0
Le solde du compte 0 est 0
C'est comme si, dès que je crée un nous compte, il écrase l'ancien compte crée et lui donne sa valeur.
Je ne sais pas d'ou ça vient, merci pour votre aide.
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Problème avec constructeurs
- Airbags Takata : une action de groupe bientôt lancée contre les constructeurs - Guide
- Ces constructeurs de Smart TV espionnent leurs utilisateurs : la justice s'en mêle - Guide
- Voilà pourquoi les constructeurs n'affichent plus le prix de vente réel des voitures neuves - Guide
- "On peut rouler plus vite que la limite autorisée" : voici la tolérance des radars selon leurs constructeurs - Guide
2 réponses
Quand tu mets "static" ça crée une seule variable pour toutes tes instances, donc effectivement tu écrases les valeurs à chaque nouvel objet construit.
tu dois écrire "private int numero" au lieu de "private static int numero"
tu dois écrire "private int numero" au lieu de "private static int numero"
Le numero du premier compte est 1
Le numero du premier compte est 1
Le numero du deuxième compte est 2
Le solde du compte 1 est 500
Le solde du compte 2 est 600
Forum > Programmation > Java
Mais c'est le static qui me posait problème effectivement, merci !