Question de cohérence, curiosité
Bonjour
Par curiosité, histoire de me conforter ce que j'appelle "bonne solution est préférable à mauvaise solution? (Peut-être une question "bête") mais j'aimerais avoir l'explication "informatique" . Dans le premier cas on alloue de l'espace pour deux variables que l'on garde jusqu'à la fin du traitement, dans le second, on alloue et détruit l'allocation d'espace à chaque début/fin de méthode? Ou bien les deux méthodes sont équivalentes?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
public void methode1(){
/** Mauvaise solution **/
double i,j;
Pour Animal de anmiaux
methode2(animal,i,j)
Fin Pour
{ traitement }
/** Bonne solution **/
Pour Animal de anmiaux
methode2(animal)
Fin Pour
{ traitement }
}
public void methode2(Animal animal){
/** Mauvaise solution **/
i = this.tester();
j = this.tester();
animal.setValeur(i-j)
/** Bonne solution **/
double i = this.tester();
double j = this.tester();
animal.setValeur(i-j)
} |
Si l'on ajoute une variable du type:
dans la méthode 1
X x = new X()
et que dans méthode 2 on exécute x.y() alors on travaille toujours sur le même objet.
Si l'on place X x = new X() dans la méthode 2 alors on crée un objet différent pour chaque appel à la méthode. Vrai ?
Merci beaucoup pour vos éclaircissements !