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