鱼C论坛

 找回密码
 立即注册
查看: 1517|回复: 8

[已解决]一个输入支出和收入后算余额的题

[复制链接]
发表于 2022-10-11 10:27:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 咦一哈呦呦 于 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这个函数  
最佳答案
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();
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-11 10:35:47 | 显示全部楼层

回帖奖励 +20 鱼币

Account temp就是传入一个Account对象参数,你在主函数里实例化了一个Account对象,然后传入了compute方法,执行compute里的代码,计算出余额!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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();他在这里应该怎么打呀。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

传入Account的对象就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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();
    }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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));  我应该搞错了吧,他这样是错的
咦,我运行了一下他说此处不允许只用空类型 这是哪里错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

懂了懂了谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-11 10:54:34 | 显示全部楼层

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 23:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表