我正在创建一个银行账户程序来学习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 分配回类变量。