Comment passer d'un objet entre plusieurs classes? Java
public class FooClass {
BarClass bar = null;
int a = 0;
int b = 1;
int c = 2;
public FooClass(BarClass bar) {
this.bar = bar;
bar.setFoo(this);
}
}
public class BarClass {
FooClass foo = null;
public BarClass(){}
public void setFoo(FooClass foo) {
this.foo = foo;
}
}
ailleurs...
BarClass theBar = new BarClass();
FooClass theFoo = new FooClass(theBar);
theFoo.a //should be 0
theBar.foo.a = 234; //I change the variable through theBar. Imagine all the variables are private and there are getters/setters.
theFoo.a //should be 234 <-----
Comment puis-je passer d'un objet à l'autre de la classe, faire un changement, et le changement apparaissent dans l'instance d'origine de l'objet premier?
ou
Comment puis-je faire un cycle où un changement à une classe se reflète dans l'autre classe?
- Avez-vous l'essayer? C'est exactement la façon dont vous le souhaitez.
Vous devez vous connecter pour publier un commentaire.
C'est déjà exactement comment fonctionnent les objets en Java. Votre code déjà fait ce que vous voulez.
Lorsque vous passez
theBar
à laFooClass
constructeur, c'est en passant la valeur detheBar
, qui est un référence à unBarClass
objet. (theBar
lui-même est passé par valeur - si vous avez écritfoo = new FooClass();
dans leBarClass
constructeur, qui ne change pas l'objettheBar
visée. Java est strictement passer par valeur, c'est juste que les valeurs sont souvent des références.)Lorsque vous modifiez la valeur à l'intérieur de l'objet à l'aide de
theBar.foo.a
, puis, regardant la valeur dea
nouveau à l'aide detheFoo.a
va voir la mise à jour de la valeur.Fondamentalement, Java n'est pas copie objets, sauf si vous le demandez.