Communication entre 2 classes avec this

sparetime Messages postés 34 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 17 août 2004 - 19 avril 2004 à 21:22
cs_Dobel Messages postés 333 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 23 novembre 2009 - 20 avril 2004 à 17:18
bonsoir
je veux faire communiquer deux classes indépendantes de sorte que j'ai une variable dans la premiere classe sur laquelle je fais un calcul et quand j'accède à l'autre classe je veux trouver le résultat dedans.
comment je peux faire avec l'opérateur this.
j'ai essayé de passer une des classes en parametre ds les mthodes de l'autre mais ca n'a pas marché ou bien je ne sais pas comment faire(c sur)
svp aidez moi vite (aujourd'hui si possible )et si possible avec un simple exemple où ca marche
merci

4 réponses

cs_Dobel Messages postés 333 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 23 novembre 2009 1
19 avril 2004 à 22:21
Salut

un pitit exemple
la classe B travaille sur la variable x d'une instance de A

public class Test {
public static void main(String[] args) {
A a = new A(5);
System.out.println(a);
new B(a);
System.out.println(a);
a.methode();
System.out.println(a);
}
}

class A {
public int x;

public A(int x) {
this.x = x;
}

public void methode() {
new B(this);//B va travailler sur cette instance de A
}

public String toString() {
return "x = "+x;
}

}

class B {
public B(A a) {
a.x = a.x+2;
}
}

A+
DOBELIOU
0
sparetime Messages postés 34 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 17 août 2004
20 avril 2004 à 15:35
ok merci
0
sparetime Messages postés 34 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 17 août 2004
20 avril 2004 à 15:48
mais est ce que je ne peux pas declarer X comme static dans la classe test et je l'utilise ds la classe A etB de sorte que qd je demande la valeur de x a partir de la classe test je trouve que sa valeur a été modifiée??
0
cs_Dobel Messages postés 333 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 23 novembre 2009 1
20 avril 2004 à 17:18
bien sur, mais il faut faire attention à comment tu utilises x
(tu n'as plus besoin de this)

un autre chtit exemple

public class Test {
  static int x=10;

  public static void main(String[] args) {
    A a = new A(x);//passage par valeur et non pas par reference!
    a.methode();
    System.out.println("a.x = "+a.x);
    System.out.println("Test.x = "+x);
  }
}

class A {
  public int x;

  public A(int x) {
    this.x = x;
  }

  public void methode() {
    Test.x = Test.x+2;
    x = 2*x;//ne travaille pas sur Test.x
  }
}


la sortie donne
a.x = 20
Test.x = 12

A+
DOBELIOU
0
Rejoignez-nous