无法从另一个类调用变量

时间:2014-03-17 17:53:53

标签: java class

我在java中模拟了mastermind游戏。玩家猜测计算机选择的4位数字。如果正确的数字位于正确的位置,那么它就是公牛,如果不是 - 牛。我试图在Game类中设置它,这样如果它是4 Bulls,则游戏结束。我在Game构造函数中创建了一个名为Bulls的新变量,它等同于Oracle类中的Bulls,但它似乎不起作用。我试图在Oracle约束器中而不是在方法中初始化公牛,但它似乎也没有工作。有什么建议?我感谢任何帮助。代码在下面的链接中。对不起,它有点凌乱...... Look at pic called the BullsGame and the Oracle pics

这就是我试图从类Oracle调用变量bulls的方法,其中计算机是一个对象:

computer = new Oracle();
theBulls = computer.bulls;
turns = 0;
input = new Scanner(System.in);

然后我试图在这里使用它:

if (theBulls == 4){
System.out.print("Thanks for playing!");
}
else{
more code

1 个答案:

答案 0 :(得分:0)

当您的main方法创建new Game()时,该构造函数会创建new Oracle()

Oracle构造函数未指定bulls的值,因此默认为0

Game构造函数继续,并将此0值复制到theBulls

然后拨打g.play(),最终检查theBulls == 4。这将始终失败,因为theBulls从未从0更改。

我怀疑您正在想象theBulls = computer.bullstheBulls自动更新,因为computer.bulls会有所不同。事实并非如此。

一个简单的解决方案是将if条件更改为

if (computer.bulls == 4) {