2

我整天都在寻找这个问题的答案。

我有一个值类,只要程序正在运行,它就可以保存各种值。

我在 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 对象,我会自动创建一个新的值对象,它具有默认的货币值。所以,基本上我的问题是;我该如何解决?

4

3 回答 3

5

使对象静止。static Value value = new Value();

  • static变量在所有对象之间共享
  • 因此,对变量所做的更改static将反映在类的所有对象上。
于 2013-10-14T14:36:37.917 回答
1

如果您想在 A 中获取该值,则必须在 A 构造函数中分配该值,例如

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

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

否则,您可以将值设为静态

于 2013-10-14T14:36:56.480 回答
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();
    }
}
于 2013-10-14T14:41:34.697 回答