Bonjour,

Je suis confront� � un comportement qui me laisse perplexe.
Ce n'est trop grave comme probl�me, mais je trouve �a vraiment bizarre :
j'ai une m�thode qui rappelle le constructeur de sa classe toute seule !!

J'essaie de vous expliquer, peut-�tre connaissez-vous ce comportement.

 - 2 classes

###1�re classe :
en gros, j'ai une m�thode static qui renvoie un objet que je cr�� dans cette
m�thode
Du style :

public class UneClasse {
        ...
        public static MaClasse get() {
                MaClasse newO = new Object MaClasse();
                //traitement ...
                return newO;
        }
        ...
}

Ensuite, dans MaClasse, j'ai :
- un compteur
        int i = 0;

- un constructeur
        public MaClasse() {
                super();
                //traitement ...
                maMethode();
        }

- une m�thode
        private void maMethode() {
                // traitement ...
                i++;
                System.out.println("Ex�cution de la m�thode : " + i);
        }

Enfin, si je fais
Maclass obj = UneClasse.get();

j'obtiens en sortie :
Ex�cution de la m�thode : 1
Ex�cution de la m�thode : 2

Y'a quelque chose qui m'�chappe. J'ai v�rifi� avec un d�bugger : � la fin de
maMethode(), le programme repart au d�but du constructeur ...

Par contre, si je fais dans Maclasse un main, avec juste un new MaClasse(),
je n'ai aucun probl�me de double ex�cution ...

Config : windows 2000, jdk 1.4.0


Damien Lecan

Répondre à