public class CoinCounter { // constants giving the coin values in $ static final double QUARTER_VALUE = 0.25; static final double DIME_VALUE = 0.10; // <==<1> static final double NICKEL_VALUE = 0.05; // <==<1> static final double PENNY_VALUE = 0.01; // <==<1> // <== // fields contain the object's internal state private int myQuarters; // total quarters private int myDimes; // total dimes <==<1> private int myNickels; // total nickel <==<1> private int myPennies; // total pennies <==<1> // constructor (initialize object on creation) public CoinCounter( ) { myQuarters = 0; // no quarters myDimes = 0; // no dimes <==<1> myNickels = 0; // no nickels <==<1> myPennies = 0; // no pennies <==<1> } // accessors (methods don't change object) public double getTotalDeposit( ) { // <4>return total value of coins deposited in $ return myQuarters*QUARTER_VALUE + myDimes*DIME_VALUE + myNickels*NICKEL_VALUE + myPennies*PENNY_VALUE; // <== } public void print( ) { // <2>output the coin values in a nice format System.out.println("Quarter value =\t" + myQuarters*QUARTER_VALUE); System.out.println("Dime value = \t" + myDimes*DIME_VALUE); System.out.println("Nickel value = \t" + myNickels*NICKEL_VALUE); System.out.println("Penny value = \t" + myPennies*PENNY_VALUE); /*System.out.println("Total deposit = " + (myQuarters*QUARTER_VALUE + myDimes*DIME_VALUE + myNickels*NICKEL_VALUE + myPennies*PENNY_VALUE ) ); */ System.out.println("Total deposit = " + getTotalDeposit()); System.out.println(); } // <6> toString method public String toString() { // <== toString method return "Quarter value =\t" + myQuarters*QUARTER_VALUE + "\n" + "Dime value = \t" + myDimes*DIME_VALUE + "\n" + "Nickel value = \t" + myNickels*NICKEL_VALUE + "\n" + "Penny value = \t" + myPennies*PENNY_VALUE + "\n\n"; } // modifiers (methods change object's state) public void deposit (int quarters, int dimes, int nickels, int pennies) { // <3>update the totals to reflect this deposit myQuarters += quarters; myDimes += dimes; myNickels += nickels; myPennies += pennies; } // <6> clear method public void clear( ) { myQuarters = 0; myDimes = 0; myNickels = 0; myPennies = 0; } }