我是Java的新手,我正在尝试为钱包制作一个程序第一种方法应该返回它所做的钱包当前的钱,但第二种应该是给钱包加钱并返回结果加法一直让我回报我添加的值(addmoney)。
package wallet;
import java.util.Scanner;
public class Wallet {
double money;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Wallet w = new Wallet();
Double money = input.nextDouble();
System.out.println(walletbalance(money));
Double addmoney = input.nextDouble();
System.out.println(w.moneyaddition(addmoney));
}
public static double walletbalance(double bal) {
return bal;
}
public double moneyaddition(double added) {
return money = added + money;
}
}
答案 0 :(得分:0)
观察到的行为是副作用的结果。也就是说,您希望moneyaddition
返回money+added
的结果,并想知道为什么函数只返回added
值而不是总和。你所看到的功能没有错,但是在之前的walletbalance
来电中你从未设置money
成员,所以0 + added
生成added
。您需要修复此属性的setter,然后才能工作:
public static double walletbalance(double bal) {
money = bal;
return bal;
}