如何通过方法增加int?

时间:2017-03-30 11:11:30

标签: java

我是java的新手,我在一个没有结局的情况下得到了咳嗽,至少对我而言; 基本上我要做的是通过相同的方法增加两个int,但似乎我无法弄清楚。

示例:

int health;
int mana;

每个值附近都有一个按钮,对应于将显示生命值和法力值的实际标签。

public void upgrade(int health, int mana){
   the problem is that I don't know how to do it?
This method should be able to increase only one stat (mana or health), and it will be called on button clicked(action listener)
}

请给我一些见解!

4 个答案:

答案 0 :(得分:2)

对......好吧,我让它以某种方式工作。问题是,我不知道如何将变量设置为特定的int。 这就是我所拥有的

当我调用方法时,我使用升级(mana); 然后我的方法;

public void upgrade(int val){
            if(val < 5)
                val = val + 1;
                setMana(val);
}

价值会增加。 问题是我也想分别使用这个方法来保持健康,我真的不知道下一步该做什么。 我一直在寻找价值传递; 有什么见解吗?

答案 1 :(得分:1)

尝试思考面向对象!

public class ManaAndHealth {
    int health;
    int mana;
    public int getHealth() {
        return health;
    }

    public void setHealth(int theHealth) {
        health=theHealth;
    }
    public void setMana(int theMana) {
        mana=theMana;
    }
    public int getMana() {
        return mana;
    }
}

然后你可以像这样使用它:

public void upgrade(ManaAndHealth mah){
   mah.setMana(mah.getMana()+10);
   mah.setHealth(mah.getHealth()+10);
}

这只是为了展示这个概念,然后maxManamaxHealth等其他内容可能会限制升级......

答案 2 :(得分:1)

Java方法调用使用&#34;按值调用&#34;论证传递。

让我们忽略传递引用的非基本类型(也是值)。 我们只看原始类型:

class Example{
    int field1 = 0;

    void method1( int arg1 )
    {
         arg1 = 5;
    }

    void method2()
    {
         field1 = 5;
    }

    void driver()
    {
         method1(field1); // <= (a copy of) the _value_ of field1 will be
                          // passed to method1. The value of field1 will
                          // stay the same, no matter what happens inside method1.
         // field1 == 0 
         method2(); // uses the class's field => change will be visible
         // field1 == 5
    }
}

如果使用与void method1( int field1 )相同的名称,则只隐藏方法内的类字段。变更仍然只在本地可见。

答案 3 :(得分:0)

好的,所以我最近一直在测试,看看如何使用单一方法来改变int法力和健康的值。我不知道这是否是正确的方法,但它在我的情况下运作良好。 对于那些可能正在寻找实际答案的人来说,它可能是有用的:    基本上我添加了一个名为CE的新int,每当我调用一次升级时,我都会将其与传递值(val)相等。

public void upgrade1(int val){
            if(val < 5)
                val = val + 1;
                CE = val; 
}

当我点击按钮时,我将法术力和生命值(每个单独)设置为与 CE 相等。从那里我只需要将法术力和健康价值设定为CE。现在可以自己更改值,而无需修改不需要修改的值。 感谢您的支持和协作社区!