Décalration attribut java

Bonsoir tt le monde ,

Je n'arrive pas à trouver un type adéquat pour un attribut qui me permet de manipuler les objets de classe comme je le souhaite, je m'explique :

Supposons que j'ai une classe personne, chaque personne a un identifiant . Je voudrais initialiser cet attribut lors de la première instanciation de ma classe par exemple à 1 , et je l'incrémente , comme ça le deuxième objets aura pour identifiant 2, et ainsi de suite ... tt cela sans passer la valeur de l'attribut dans le main , càd le traitement doit être fait ds la classe .
j'espère que j'étais claire .

Merci pour vos réponse

6 réponses

  1. Salut,

    As-tu pensé utiliser une ArrayList d'objets (mais attention de rang 0 à n) ?
    L'objet à utiliser serait celui correspondant à ton compteur.

    Cordialement,

    Dan
    1. merci pour ta réponse , mais j'ai pas bien compris . le ArrayList je l'utilise à quel niveau ?

      voila un exemple de ce que je veux faire

      public class Exemple {
      type int identifiant = 0;
      public Exemple(){
      this.identifiant++;
      }
      }

      et dans le main

      Exemple ex1 = new Exemple() ; // aura pour identifiant 1
      Exemple ex2 = new Exemple() ; // aura pour identifiant 2
      ....

      Merci pour votre aide ;
      1. Re,

        "et dans le main

        Exemple ex1 = new Exemple() ; // aura pour identifiant 1
        Exemple ex2 = new Exemple() ; // aura pour identifiant 2
        .... "

        C'est quoi "le main" ? la méthode main(...) de la classe Exemple ?
    2. Je ne connais pas Java, mais en C++ ce problème est rapidement résolu en déclarant, dans la classe, une donnée membre statique; celle-ci permettra de connaître, en l'incrémentant à chaque instantiation, où en est le compteur.
      Bonne continuation.
      1. merci pour ta réponse ,
        static existe aussi en java , mais si je déclare ma variable static , quand elle sera incrémentée pour la deuxième instanciation , sa valeur changera aussi pour la premier objet. ça marche très bien ds le cas d'un compteur mais ce n'est pas vraiment le cas de ce que je souhaite faire .

        Merci pour votre aide,
        1. Certes, mais il suffit, dans le constructeur, d'écrire quelque chose du genre:
            identifiant = ++compteur;
          Sinon, je ne vois pas de solution.
          Bonne continuation.
          1. bonne idée .
            je vais essayer comme ça , sinon je vais procéder autrement .

            Merci