我是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)
}
请给我一些见解!
答案 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);
}
这只是为了展示这个概念,然后maxMana
和maxHealth
等其他内容可能会限制升级......
答案 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。现在可以自己更改值,而无需修改不需要修改的值。 感谢您的支持和协作社区!