无法从方法获取返回值(java)

时间:2016-12-11 16:08:57

标签: java variables methods assign

嘿,我不明白为什么,当这次运行时,计算等于零。我已经为main方法中的变量赋值了。我错过了什么,因为我正在试图解决这个问题。此外,我正在关注一个非常简单的例子,我在网上看到它工作,我只是根据我的需要编辑它。我比较新,所以忍受我,这是我的第二个月,我想继续这样做。

public void myAtkStat(int myAtk) {
    System.out.println("Atk:" + myAtk);
    int meAtk = myAtk;
}

public int getmyAtk() {
    return meAtk;
}

public void defStat(int def) {
    System.out.println("Def :" + def);
    int defense = def;
}

public int getDefense() {
    return defense;
}

public void doCalculation() {
    System.out.println((getmyAtk() * 2) - getDefense());
}

2 个答案:

答案 0 :(得分:0)

设置攻击值时,您需要使用方法变量。所以你永远不会设定价值。你必须写如下:

public void myAtkStat (int myAtk) {
    System.out.println("Atk:" + myAtk);
    this.meAtk=myAtk;
}

你对变量防御有同样的问题(正如他们在评论中所说的那样)

答案 1 :(得分:0)

int defense = def;

因为您包含了一个类型(int),所以您创建了一个新的局部变量。然后,当您分配给它时,您将分配给新的局部变量,而不是类成员。

包含一个类型以创建新变量。在这种情况下删除它以引用类成员。

或者,更好的是,明确你想要的变量:

this.defense = def;