为了账号安全,请及时绑定邮箱和手机立即绑定

有人可以解释为什么我的打印方法不起作用吗?

有人可以解释为什么我的打印方法不起作用吗?

陪伴而非守候 2021-10-06 10:22:29
我试图调用getName,并getBalance从另一个名为类的方法Account在银行类我printbalances方法。但它不起作用,它在输入客户和余额后打印为空。有人可以解释为什么以及如何解决它吗?老实说,我不知道为什么它不起作用。这是调用它的类:class Bank {    ArrayList<Account> accounts = new ArrayList<>();    Scanner input = new Scanner(System.in);    Scanner q;    String name;    double balance;    private Account account = new Account(name, balance);    public void enterCustomers() {        System.out.println("Enter customer names or press q to quit entering names: ");        while (true) {            String name;            double balance;            System.out.print("Enter a customer name: ");            name = input.next();            if ("q".equals(name)) { //tried using == to break but wouldnt work so tried .equals since comparing strings and works                break;            }    }这是存储 get 方法的类:class Account {    private String name;    private double balance;    public Account(String name, double balance) {        this.name = name;        this.balance = balance;    }    public String getName() {        return name;    }    //public void setName(String name) {    //  this.name = name;    //}    public double getBalance() {        return balance;    }    //public void setBalance(double balance) {    //  this.balance = balance;    //}    public void deposit(double amount) {        balance += amount;    }    public void withdrawal(double amount) {        if (balance >= amount) {            balance -= amount;        } else {            System.out.println(" Insufficient Balance. ");        }    }}它给我的输出是这样的:Enter customer names or press q to quit entering names: Enter a customer name: johnEnter the opening balance : 200Enter a customer name: mikeEnter the opening balance : 2Enter a customer name: q==========================Opening account balance==========================Customer            Balance==========================null0.0(1)deposit (2)withdraw (0)quit我不知道为什么会null 0.0出现,有人可以解释为什么吗?
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

有没有更多的参考account

您可能会在某个时候覆盖它,因为它的名称null0.0


查看完整回答
反对 回复 2021-10-06
?
UYOU

TA贡献1878条经验 获得超4个赞

现在你正在account像这样初始化:


private Account account = new Account(name, balance);

但是这里name和balance没有初始化,所以null默认情况下它们分别是和 零。看起来更像是您想打印特定Account对象的名称和余额,因此我会将其作为参数传递给printBalances:


public void printBalances(Account account) {


    System.out.println("==========================");

    System.out.println("Customer            Balance");

    System.out.println("==========================");

    System.out.println(account.getName() + " : " + account.getBalance());


}

或者,如果您想打印accounts ArrayList:


public void printBalances() {

    System.out.println("==========================");

    System.out.println("Customer            Balance");

    System.out.println("==========================");

    for(Account account : accounts) {

        System.out.println(account.getName() + " : " + account.getBalance());

    }

}


查看完整回答
反对 回复 2021-10-06
  • 2 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信