class CreditCard { private String expirationDate; private String holderName; private String network; private String accountNumber; private double balance; public CreditCard (String expirationDate, String holderName, String network, String accountNumber) { this.expirationDate = expirationDate; this.holderName = holderName; this.network = network; this.accountNumber = accountNumber; this.balance = 0.0; } public CreditCard (String expirationDate, String holderName, String network, String accountNumber, double balance) { this.expirationDate = expirationDate; this.holderName = holderName; this.network = network; this.accountNumber = accountNumber; this.balance = balance; } public void changeExpiration(String expirationDate) { this.expirationDate = expirationDate; } public void makePayment(double paymentAmount) { balance -= paymentAmount; } public void makeCharge(double chargeAmount) { balance += chargeAmount; } public double getBalance() { return balance; } public String toString() { String retString = ""; retString += holderName + ", "; retString += network + ", "; retString += accountNumber + ", "; retString += expirationDate +", "; retString += "$" + balance; return retString; } public boolean equals (Object o) { CreditCard c = (CreditCard) o; if (!this.expirationDate.equals(c.expirationDate)) return false; if (!this.holderName.equals(c.holderName)) return false; if (!this.network.equals(c.network)) return false; if (!this.accountNumber.equals(c.accountNumber)) return false; if (this.balance != c.balance) return false; return true; } }