整数不更新,虽然方法应该强制它

Mar*_*son 1 java integer

所以,我正在用Java创建一个基于文本的游戏,货币就是豆形软糖.不过我有一个问题.每当我设置货币加5时,它就不会,并返回0.这是代码

public class Util{

    public int Jellybeans = 0;

    public void jellybeans(int Amount){
        Jellybeans = Jellybeans + Amount;
    }

    public int getJellybeans(){
        return Jellybeans;
    }
}


public class Tutorial{

    Util util = new Util();
    private int jellybeanCount = util.getJellybeans(); 

    private void dialog(){
        //unrelated irrelevant stuff
        util.jellybeans(5);
        Util.printAnimatedText("You now have " + jellybeanCount + " 
        jellybeans!")'
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,这可能是一个基本问题,但我不确定

Yah*_*hya 5

getJellybeans()在错误的地方调用.你需要做的是:

Util util = new Util();
private int jellybeanCount; 
private void dialog(){
    util.jellybeans(5);
    jellybeanCount = util.getJellybeans(); // here
    Util.printAnimatedText("You now have " + jellybeanCount + " 
            jellybeans!")'
}
Run Code Online (Sandbox Code Playgroud)

这是为什么?

因为当您Util在开头创建对象时,该Jellybeans字段仍为(或特别等于ZERO).因此,当您调用时getJellybeans(),该字段仍然没有5,并返回其初始值ZERO.

但是,在将字段的值设置为5之后util.jellybeans(5);,您将拥有一个值为0以外的字段.你现在可以得到.