我一直在寻找这个问题的答案。
只要程序正在运行,我就有一个包含各种值的值类。
我在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对象,我会自动创建一个新的值对象,该对象具有默认的货币值。所以,基本上我的问题是;我该如何解决这个问题?
答案 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();
}
}