(初学者)无法从void访问变量

时间:2014-01-04 05:05:34

标签: java variables void

我正在创建一个银行帐户计划来学习OOP。我做了一个名为w_or_d的空洞方法(代表撤回或存款),但在我的虚空中制造的变量并没有延伸到虚空之外。

它将我的变量(finalbalance)显示为0

public class users {
  int balance;
  int finalbalance;

  public void w_or_d(int word, int amount) {

    if (word ==0) {
      int finalbalance = balance-amount;
    }
    else if (word == 1) {
      int finalbalance = balance+amount;
    } 

  }

  System.out.println(finalbalance);
}

4 个答案:

答案 0 :(得分:5)

您正在使用重复方法局部变量定义来遮蔽实例变量:

    int finalbalance = balance-amount;

只做分配而不是重新解密

    finalbalance = balance-amount;

同样使用关键字this将确保您设置实例变量而不是局部变量,以防您有两个具有相同名称的变量。所以这更安全:

   this.finalbalance = balance-amount;

答案 1 :(得分:2)

int finalbalance = balance+amount;
int finalbalance = balance+amount;

这些句子覆盖了

int finalbalance;

所以当你

System.out.println(finalbalance);

finalbalance没有正确的值。

只需删除“int”

int finalbalance =余额+金额;

int finalbalance =余额+金额;

答案 2 :(得分:1)

您已将finalbalance声明为类属性和您的(命名不佳)方法w_or_d()中的局部变量。

你正在改变当地人;当局部变量超出范围时忽略的更改。

这里有教程:Lesson: Classes and Objects

答案 3 :(得分:0)

或者可以在else if语句之后用作休闲

this.finalbalance =finalbalance;

所以它将finalbalance分配回类变量。