如何从Java中的多个类访问同一个对象

时间:2013-10-14 14:34:03

标签: java object reference

我一直在寻找这个问题的答案。

只要程序正在运行,我就有一个包含各种值的值类。

我在A类中创建一个新的Value对象,并存储一个int值。
A类还有一个printMoney()方法。

public class A {
Value value = new Value(); 
value.setMoney(100);

public void printMoney {
System.out.println(value.getMoney);
}

在B类中,我希望能够从A类调用printMoney(),所以从逻辑上讲我会做以下事情:

public class B {
A a = new A();

a.printMoney();
}

然而,这会将'0'作为值而不是'100'返回。

据我所知,通过创建A对象,我会自动创建一个新的值对象,该对象具有默认的货币值。所以,基本上我的问题是;我该如何解决这个问题?

3 个答案:

答案 0 :(得分:5)

使对象保持静态。 static Value value = new Value();

  • static变量在所有对象之间共享
  • 因此,static变量中所做的更改将反映在类的所有对象中。

答案 1 :(得分:1)

如果你想在A中获得该值,你必须在A construtor中分配值,比如

public class A {
  Value value = new Value();

  public A() {
     this.value.setMoney(100);
  }

否则,您可以使值静态

答案 2 :(得分:0)

你应该收到创建对象B的实例并保存它然后你就可以调用它 像这样:

public class A {
    B b = new B(this);
}

public class B {
    A a;

    public B(A a) {
        this.a = a;
    }

    private someMethod () {
        a.printMoney();
    }
}