(初学者)无法从 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);
}

您正在使用重复的方法局部变量定义来隐藏实例变量:

    int finalbalance = balance-amount;

只需执行作业而不是重新贴花

    finalbalance = balance-amount;

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

   this.finalbalance = balance-amount;
int finalbalance = balance+amount;
int finalbalance = balance+amount;

这些句子覆盖

int finalbalance;

所以当你

System.out.println(finalbalance);

最终余额没有正确的值。

只需删除"int"

int 最终余额 = 余额 + 金额;

int 最终余额 = 余额 + 金额;

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

您正在更改局部变量;当局部变量超出范围时,将忽略其更改。

这里有教程:课程:类和对象

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

this.finalbalance =finalbalance;

因此,它将 FinalBalance 分配回类变量。

最新更新