咦一哈呦呦 发表于 2022-10-11 10:27:26

一个输入支出和收入后算余额的题

本帖最后由 咦一哈呦呦 于 2022-10-11 10:29 编辑

class Account{
    private String accountName;
    private double income;
    private double outcome;
    public Account(){}

    public void setAccountName(String accountName){
      this.accountName = accountName;
    }
    public void setIncome(double income){
      this.income = income;
    }
    public void setOutcome(double outcome){
      this.outcome = outcome;
    }

    public double getIncome() {
      return income;
    }

    public String getAccountName() {
      return accountName;
    }

    public double getOutcome() {
      return outcome;
    }
}

public class AccountBook {
    public static void main(String[] args){
      Account acc = new Account();

      System.out.println("账户名称:" + acc.getAccountName() + "收入额:" + acc.getIncome() + "支出额:" + acc.getOutcome() + "余额:" + 20.0);
    }

    public static void compute(Account temp){
      temp.setAccountName("张三");
      temp.setIncome(30);
      temp.setOutcome(10);
      System.out.println(temp.getIncome()-temp.getOutcome());
    }
}




在最后的public static void compute(Account temp)里的Account temp是什么意思。在输出的时候我应该则么用他呢,就是在20.0的地方替换成compute这个函数

homeskating 发表于 2022-10-11 10:35:47

Account temp就是传入一个Account对象参数,你在主函数里实例化了一个Account对象,然后传入了compute方法,执行compute里的代码,计算出余额!

咦一哈呦呦 发表于 2022-10-11 10:40:27

homeskating 发表于 2022-10-11 10:35
Account temp就是传入一个Account对象参数,你在主函数里实例化了一个Account对象,然后传入了compute方法 ...

你好 我想问一下System.out.println("账户名称:" + acc.getAccountName() + "收入额:" + acc.getIncome() + "支出额:" + acc.getOutcome() + "余额:" + compute();); 我在输出的时候 compute();他在这里应该怎么打呀。

homeskating 发表于 2022-10-11 10:42:01

咦一哈呦呦 发表于 2022-10-11 10:40
你好 我想问一下System.out.println("账户名称:" + acc.getAccountName() + "收入额:" + acc.getIncome ...

传入Account的对象就可以了

Twilight6 发表于 2022-10-11 10:43:05



这就是 Java 中方法的传入参数设置类型和变量名的意思,表示此 compute 方法需要一个 Account 类的参数

你想将 20.0 除换成此方法的调用,需要你设置方法返回值,你可以不应该这样定义这个方法,因为你这样就将 compute 写死了,即 30 - 20

参考修改代码:

public class AccountBook {
    public static void main(String[] args){
      Account acc = new Account();
      acc.setAccountName("张三");
      acc.setIncome(30);
      acc.setOutcome(10);
      System.out.println("账户名称:" + acc.getAccountName() + "收入额:" + acc.getIncome() + "支出额:" + acc.getOutcome() + "余额:" + compute(acc));
    }

    public static Double compute(Account temp){
      return temp.getIncome() - temp.getOutcome();
    }
}

咦一哈呦呦 发表于 2022-10-11 10:47:22

本帖最后由 咦一哈呦呦 于 2022-10-11 10:49 编辑

homeskating 发表于 2022-10-11 10:42
传入Account的对象就可以了

acc 是对象吗System.out.println("账户名称:" + acc.getAccountName() + "收入额:" + acc.getIncome() + "支出额:" + acc.getOutcome() + "余额:" + compute(acc));我应该搞错了吧,他这样是错的
咦,我运行了一下他说此处不允许只用空类型 这是哪里错了

homeskating 发表于 2022-10-11 10:51:18

咦一哈呦呦 发表于 2022-10-11 10:47
acc 是对象吗System.out.println("账户名称:" + acc.getAccountName() + "收入额:" + acc.getIncom ...

    public static double compute(Account temp){
      temp.setAccountName("张三");
      temp.setIncome(30);
      temp.setOutcome(10);
       return temp.getIncome()-temp.getOutcome();
    }
改下compute方法

咦一哈呦呦 发表于 2022-10-11 10:52:18

Twilight6 发表于 2022-10-11 10:43
这就是 Java 中方法的传入参数设置类型和变量名的意思,表示此 compute 方法需要一个 Account 类的参数 ...

懂了懂了谢谢

咦一哈呦呦 发表于 2022-10-11 10:54:34

homeskating 发表于 2022-10-11 10:51
改下compute方法

谢谢
页: [1]
查看完整版本: 一个输入支出和收入后算余额的题