Java方法返回给定的变量而不是结果

时间:2017-11-11 22:35:33

标签: java

我是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;
 }
}

1 个答案:

答案 0 :(得分:0)

观察到的行为是副作用的结果。也就是说,您希望moneyaddition返回money+added的结果,并想知道为什么函数只返回added值而不是总和。你所看到的功能没有错,但是在之前的walletbalance来电中你从未设置money成员,所以0 + added生成added。您需要修复此属性的setter,然后才能工作:

public static double walletbalance(double bal) {
    money = bal;
    return bal;
}