如何在多个类之间传递对象? Java的

时间:2011-09-24 06:51:10

标签: java reference

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;
    }
}

...别处

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  <-----

如何将对象传递给另一个类,进行更改,并将更改显示在第一个对象的原始实例中?

如何创建一个循环,其中一个类的更改反映在另一个类中?

1 个答案:

答案 0 :(得分:5)

这已经是对象在Java中的运作方式。您的代码已经完成了您想要的任务。

当您将theBar传递给FooClass构造函数时,会将theBar的值(引用)传递给BarClass对象。 (theBar本身是按值传递的 - 如果你在foo = new FooClass();构造函数中写了BarClass,那么就不会改变theBar引用的对象.Java是严格传递的-value,只是值通常是引用。)

使用theBar.foo.a更改该对象中的值时,使用a再次查看theFoo.a的值将会看到更新后的值。

基本上,Java不会复制对象,除非你真的要求它。