Expliquez moi ce petit code java,merci [Résolu]

cs_limalima 125 Messages postés dimanche 31 août 2008Date d'inscription 16 décembre 2010 Dernière intervention - 28 sept. 2008 à 17:03 - Dernière réponse : cs_limalima 125 Messages postés dimanche 31 août 2008Date d'inscription 16 décembre 2010 Dernière intervention
- 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

*

*/
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention - 28 sept. 2008 à 18:09
3
Merci
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..

Merci cs_Chatbour 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_Chatbour
Meilleure réponse
cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention - 28 sept. 2008 à 18:27
3
Merci
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..

Merci cs_Chatbour 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_Chatbour
cs_limalima 125 Messages postés dimanche 31 août 2008Date d'inscription 16 décembre 2010 Dernière intervention - 28 sept. 2008 à 20:10
0
Merci
je vous remercie beaucoup, c beaucoup plus claire!
Commenter la réponse de cs_limalima

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.