JAVA:如何打印我的信用卡对象的内容,而不是地址? (我正在打印引用地址)

标签 java object printing output

我正在《数据结构》书中进行练习,似乎我正在打印引用地址而不是实际内容?有人可以看一下我的代码并帮助我吗?感谢您抽出时间。

public class CreditCard {
//  instance variables
private String customer;
private String bank;
private String account;
private int limit;
protected double balance;

// constructors - account for all cases, one with a bal, and one without
public CreditCard(String cust, String bk, String acnt, int lim, double bal){
    customer = cust;
    bank = bk;
    account = acnt;
    limit = lim;
    balance = bal;
}
public CreditCard(String cust, String bk, String acnt, int lim){
    this(cust, bk, acnt, lim, - 0.0);
}
// accessors
public String getCustomer(){return customer;}
public String getBank(){return bank;}
public String getAccount(){return account;}
public double getLimit(){return limit;}
public double getBalance(){return  balance;}

// updaters
public boolean charge(double price){
    if(price + balance > limit){
        return false;
    }
    else balance += price;
    return true;
}
public void makePayment(double amount){
    balance -= amount;
}

// utility (static)
public static void printSummary(CreditCard card){
    System.out.println("Customer = " + card.customer);
    System.out.println("Bank = " + card.bank);
    System.out.println("Account = " + card.account);
    System.out.println("Limit = " + card.limit);
    System.out.println("Balance = " + card.balance);
}

}//信用卡类结束

最佳答案

添加toString方法(只需覆盖一个)。

public class CreditCard {
    //  instance variables
    private String customer;
    private String bank;
    private String account;
    private int limit;
    protected double balance;

    // constructors - account for all cases, one with a bal, and one without
    public CreditCard(String cust, String bk, String acnt, int lim, double bal) {
        customer = cust;
        bank = bk;
        account = acnt;
        limit = lim;
        balance = bal;
    }

    public CreditCard(String cust, String bk, String acnt, int lim) {
        this(cust, bk, acnt, lim, -0.0);
    }

    // accessors
    public String getCustomer() {
        return customer;
    }

    public String getBank() {
        return bank;
    }

    public String getAccount() {
        return account;
    }

    public double getLimit() {
        return limit;
    }

    public double getBalance() {
        return balance;
    }

    // updaters
    public boolean charge(double price) {
        if (price + balance > limit) {
            return false;
        } else {
            balance += price;
        }
        return true;
    }

    public void makePayment(double amount) {
        balance -= amount;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("CreditCard{");
        sb.append("customer='").append(customer).append('\'');
        sb.append(", bank='").append(bank).append('\'');
        sb.append(", account='").append(account).append('\'');
        sb.append(", limit=").append(limit);
        sb.append(", balance=").append(balance);
        sb.append('}');
        return sb.toString();
    }

    // you do not need this util method because of it converts to
    public static void printSummary(CreditCard card) {
        System.out.println("CreditCard = " + card);
    }
}// end class CreditCard

关于JAVA:如何打印我的信用卡对象的内容,而不是地址? (我正在打印引用地址),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45016782/

相关文章:

java - BCECPublicKey 到指纹

Java 引用内部图像文件

javascript - 遍历此 JavaScript 的最佳方法是什么

c++ - 删除 HBITMAP 对象时堆损坏

python - 如何实时将 STDOUT 从导入的模块重定向到 python 中的 Tkinter Text Widget?

objective-c - 打印Webview的页眉和页脚

java - 注册对象字段值 Java

Perl:如何动态创建对象?

wpf - WPF 固定文档中的每页方向

java - 提交表单时出错:Data truncation: Incorrect datetime