Expliquez moi ce petit code java,merci

Résolu
cs_limalima Messages postés 124 Date d'inscription dimanche 31 août 2008 Statut Membre Dernière intervention 16 décembre 2010 - 28 sept. 2008 à 17:03
cs_limalima Messages postés 124 Date d'inscription dimanche 31 août 2008 Statut Membre Dernière intervention 16 décembre 2010 - 28 sept. 2008 à 20:10
bonjour, j'ai un petit code dont je ne comprends pas les resultat!,
dans le code j'ai met des commentaires pour que vous puissiez voir ce que moi j'ai compris
voilà le code: merci de me donner qlq explications sur le résultat du code et surtout la méthode equals(Truc)

class

Truc {
public

int
i ;
public

Truc(
int a) {
i = a ; }
public

Truc(Truc t) {
i = t.
i ; }
public

boolean equals( Truc t ) {
return (t.
i ==
i) ; }
public

static
void main(String args[]) {Truc y =

new Truc(1);
//on a la valeur 1 à iTruc z = y;

//z a memereférenceque yTruc w =

new Truc(y);
// d'après le constructeur :public (Truc t) { i = t.i ; }

//i uneautrevaleur : i=y*i

if

(z== y) System.
out .println (
" 1 ") ;
// on donne laréferenceque y

// doncestvraie

if

(w == y) System.
out .println (
" 2 ") ;
// ,c'est d'accord, ils lesréferences

 

if

(z.equals(y)) System.
out.println (
" 3 ") ;
// cequetestesi y*i =i?,oui

//commedonc c'est bon

//j'ai compris

if

(w.equals(y)) System.
out.println (
" 4 ") ;
//jesui, car çateste à si}

}

/*

* voyeztresflou pour moi!!

* leresultat l'exécution duest:

* 1

* 3

* 4

*

*/

3 réponses

cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 18
28 sept. 2008 à 18:09
merci de mettre en forme ton code ce n'est pas lisible comme ça..


_____________________
Vos avis et critiques sur le livre "Objets réactifs en java" de Frédéric Boussinot : contactez moi par MP..
3
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 18
28 sept. 2008 à 18:27
voici le rôle de la méthode equals()..






voici ton code commenté :






class Truc {

    public int i ;

    /* Constructeur */
   



public



Truc(



int



a) {
        i = a;
    }

    /* Constructeur par recopie */
   



public



Truc(Truc t) {
        i = t.i;
    }

    /* Surcharge de la méthode equals() */
   



public




boolean equals( Truc t ) {
        return (t.i==i);
    }

    /* Test */
   



public




static void main(String args[]) {
       
        // y.i = 1
        Truc y = new Truc(1);   // (I)

        // z == y
        Truc z = y;  // (II)
       
        // w.i = y.i   ET   w != y (pas la même référence)
        Truc w = new Truc(y);   // (III)

        // VRAI : voir (II)
        if (z == y)
            System.out.println(" 1 ") ;

        // FAUX : voir (III)
       



if



(w == y)
            System.out.println(" 2 ") ;
        // VRAI : puisque z y   alors   z.i y.i   ce qui donne   z.equals(y) == true
       



if



(z.equals(y))
            System.out.println(" 3 ") ;

        // VRAI : voir (III)
       



if



(w.equals(y))
            System.out.println(" 4 ") ;
    }
}





Cordialement..

_____________________
Vos avis et critiques sur le livre "Objets réactifs en java" de Frédéric Boussinot : contactez moi par MP..
3
cs_limalima Messages postés 124 Date d'inscription dimanche 31 août 2008 Statut Membre Dernière intervention 16 décembre 2010
28 sept. 2008 à 20:10
je vous remercie beaucoup, c beaucoup plus claire!
0