2013-10-14 98 views
2

我一直在寻找这个问题的答案整天。如何从Java中的多个类访问相同的对象

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

我在类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

什么是'value.getMoney'?这不是一个方法调用,你没有显示你的'Value'类的代码。我怀疑问题在那里。 –

+1

Concur..the line value.setMoney(100);在方法之外并且在类标题中。这甚至编译? – henderso

回答

5

使对象变为静态。 static Value value = new Value();

  • static变量跨所有对象
  • 所以在static变量所作的变化将反映为类的所有对象共享。
1

,如果你想在一个你必须分配在一个construtor值该值,如

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

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

否则,您可以使值静态

+0

我选择将其设为静态。感谢您的回答。 – DaanBakbanaan

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(); 
    } 
} 
相关问题