Kyr1e_ 2020-05-12 13:39 采纳率: 0%
浏览 320

关于Java基础Bank类的一个问题

求大佬帮助,为什么我在执行添加帐户之后程序运行输出的是哈希码,而不是账户的信息呢?类中我是有重写toString方法的

package com.mybank.domain;

public class Account {
    private double balance;

    public void initBalance(double balance) {
        this.balance = balance;
    }

    public boolean deposit(double amt) {
        if(amt > 0) {
            balance +=amt;
            return true;}
        else 
            return false;
    }
    public boolean withdraw(double amt) {
        if(amt > balance) { 
            System.out.println("余额不足!");
            return false;
        }
        else 
            balance -= amt;
            System.out.println("取钱成功!");
            return true;
    }

    public double getBalance() {
        return balance;
    }

}
package com.mybank.domain;

public class Customer {
    private String firstName;
    private String lastName;
    private Account accounts[];
    private int numberOfAccounts;

    public Customer(String firstName,String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
        accounts = new Account[10];
        numberOfAccounts = 0;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void addAccount(double amt) {
        Account account = new Account();
        account.initBalance(amt);
        accounts[numberOfAccounts++] = account; 
    }

    public int getNumberOfAccounts() {
        return numberOfAccounts;
    }

    public Account getAccount(int index) {
        return accounts[index];
    }

    public String toString() {
        return firstName+" "+lastName;
    }
}

package com.mybank.domain;

public class Bank {
    public static Customer[] customers;
    private static int numberOfCustomers;

    static {
        customers = new Customer[10];
        numberOfCustomers = 0;
    }
    public static void addCustomer(String firstName,String lastName) {
        Customer customer = new Customer(firstName,lastName);
        customers[numberOfCustomers++] = customer;
    }

    public static int getNumberOfCustomers() {
        return numberOfCustomers;
    }

    static Customer getCustomer(int i) {
        return customers[i];
    }

}


package com.mybank.test;

import com.mybank.domain.Bank;

public class TestBanking {

    public static void main(String[] args) {
        Bank.addCustomer("Wang","Ling");
        Bank.customers[0].addAccount(500);
        Bank.customers[0].addAccount(1000);
        Bank.customers[0].addAccount(1500);
            for(int i=0; i<Bank.getNumberOfCustomers();i++) {
                Bank.customers[i].toString();
                for(int j=0; j<Bank.customers[i].getNumberOfAccounts(); j++) {
                    System.out.println(Bank.customers[i].getAccount(j));
                }
            }
        }
}

  • 写回答

2条回答 默认 最新

  • zyydomain 2020-05-12 13:57
    关注

    我看你这打印的是Account类,这个类toString方法没有重写,打印的是内存地址

    评论

报告相同问题?

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题