Appel d'attribut statique d'un objet contenu dans un tableau

cs_Mymy1984 Messages postés 11 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 14 mars 2009 - 28 nov. 2008 à 19:49
cs_Mymy1984 Messages postés 11 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 14 mars 2009 - 30 nov. 2008 à 01:03
Salut tout le monde,

Je dispose d'une classe Compte, qui possède des attributs statiques (numero, nom, solde). Dans une autre classe dans le meme projet, j'ai crée
des instances de la classe Compte et je les ai mis dans un tableau.
 Maintenant, je veux parcourir mon tableau pour faire un test sur l'attribut numero (s'il existe un objet de type Compte dans le tableau ayant un numero = 1 par exemple). Comment je dois faire ce test?
ce code ne marche pas:
for (i=0;i<10;i++)
                {
                if (tab[i].numero==num){
......}
}
merci de m'aider. j'espere etre bien claire.

7 réponses

cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
28 nov. 2008 à 21:53
Salut et bienvenue parmi nous

ici, ça n'a aucun sens de déclarer tes données (numero, nom, solde) comme étant static car "tu veux" que chaque objet Compte ait ses propres données (numero, nom, solde).. n'est-ce pas ?

voici à quoi sert le modificateur d'accès static..

Bonne continuation !


_____________________

Vos avis et critiques sur le livre "Objets réactifs en java" de Frédéric Boussinot : contactez moi par MP..
0
cs_Mymy1984 Messages postés 11 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 14 mars 2009
29 nov. 2008 à 20:27
Merci pour ta reponse de toute façon j'essayerai de me documenter plus car je confond toujours. De plus, le compilateur m'indique une erreur en déclarant mes variables 'non static' et c'est ce que je comprends pas.  

merci encor une fois jessayrai de trouver une solution pour ca.
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
29 nov. 2008 à 23:13
de rien :)

"mon compilateur m'indique une erreur en déclarant mes variables 'non static'"..

tu dois certainement les appeler comme si ils étaient déclarées static, comme dans cet example..

class Compte {
  public String nom;
  ...
}

public class Test {
  public static void main(String[] args) {
    String nom = Compte.nom;
  }
}

j'espère que cela te donne une idée sur la cause d'erreur.. sinon montres-nous ton code..

Cordialement..


_____________________

Vos avis et critiques sur le livre "Objets réactifs en java" de Frédéric Boussinot : contactez moi par MP..
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
29 nov. 2008 à 23:17
j'ai oublié un mot qui pourrait changer tout le sens

"
tu dois certainement les avoir appelé comme si ils étaient déclarées static, comme dans cet example.."




l'exemple génère la même erreur..

_____________________

Vos avis et critiques sur le livre "Objets réactifs en java" de Frédéric Boussinot : contactez moi par MP..
0

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

Posez votre question
cs_Mymy1984 Messages postés 11 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 14 mars 2009
29 nov. 2008 à 23:37
en faite je les appèle déjà comme t'as di,précédé du nom de leur classe mais l'erreur persiste.
"cannot make a static reference to the non-static field Compte.numero"

J'ai cette erreur partout où j'appèle un attribut de la classe Compte. Dans le main et hors du main.
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
29 nov. 2008 à 23:57
C'est ce que je dis..

un attribut static c'est un attribut de classe.
un attribut d'instance c'est un attribut propre à chaque objet de la classe.

Exemple :

class Compte {
    /* Attributs privés d'instance */
    private String numero;
    private String nom;
    private int solde;
   
    /* Attributs publiques de classe */
    public static final int solde_minimum = 100;
    private static int nb_comptes = 0;
   
    public Compte (String numero, String nom, int solde) {
        this.numero = numero;
        this.nom = nom;
        this.solde = solde;
        // La création d'un nouveau objet Compte incrémente le nombre total de comptes  (nb_comptes)
        nb_comptes++;
    }
   
   
    /* Méthodes getter */
   
    public String getNumero() {
        return numero;
    }
   
    public String getNom() {
        return nom;
    }
   
    public int getSolde() {
        return solde;
    }
   
   
    /* Méthodes setter */
   
    public void setNumero(String numero) {
        this.numero = numero;
    }
   
    public void setNom(String nom) {
        this.nom = nom;
    }
   
    public void setSolde(int solde) {
        if (solde >= solde_minimum) {
            this.solde = solde;
        }
        else {
            System.out.println("solde inférieur au solde minimum.");
        }
    }
   
   
    /* Récupérer le nombre total de comptes */
    public static int getCompteCount() {
        return nb_comptes;
    }
}


Maintenant, voici un exemple d'exécution :







public class Test {
    public static void main(String[] args) {
        Compte c1 = new Compte("012", "Ali", 1500);
        Compte c2 = new Compte("065", "Baba", 2550);
       
        // afficher le nombre courant de comptes : 2
        System.out.println("nombre courant de comptes : " + Compte.getCompteCount());
       
        // afficher les références de c1
        System.out.println("numéro : " + c1.getNumero() + "\nnom : " + c1.getNom() + "\nsolde : " + c1.getSolde());
    }
}









_____________________

Vos avis et critiques sur le livre "Objets réactifs en java" de Frédéric Boussinot : contactez moi par MP..
0
cs_Mymy1984 Messages postés 11 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 14 mars 2009
30 nov. 2008 à 01:03
Je te remercie vraiment pour ton aide.
En fait tout mon code était correcte et fait sur de bonnes bases mais je l'ai changé et cela m'a perturbé. Maintenant et grâce à toi je suis revenue dans une situation cohérente.

J'ai encore un autre problème dans mon code mais cette fois je dois bien réfléchir avant de demander de votre aide.
0
Rejoignez-nous