`  1  import java.util.logging.Logger;`
`  2  `
`  3  /**`
`  4     A cash register totals up sales and computes change due.`
`  5  */`
`  6  public class CashRegister`
`  7  {`
`  8     public static final double QUARTER_VALUE = 0.25;`
`  9     public static final double DIME_VALUE = 0.1;`
` 10     public static final double NICKEL_VALUE = 0.05;`
` 11     public static final double PENNY_VALUE = 0.01;`
` 12  `
` 13     private double purchase;`
` 14     private double payment;`
` 15  `
` 16     /**`
` 17        Constructs a cash register with no money in it.`
` 18     */`
` 19     public CashRegister()`
` 20     {`
` 21        purchase = 0;`
` 22        payment = 0;`
` 23     }`
` 24  `
` 25     /**`
` 26        Records the purchase price of an item.`
` 27        @param amount the price of the purchased item`
` 28     */`
` 29     public void recordPurchase(double amount)`
` 30     {`
` 31        purchase = purchase + amount;`
` 32     }`
` 33     `
` 34     /**`
` 35        Enters the payment received from the customer.`
` 36        @param dollars the number of dollars in the payment`
` 37        @param quarters the number of quarters in the payment`
` 38        @param dimes the number of dimes in the payment`
` 39        @param nickels the number of nickels in the payment`
` 40        @param pennies the number of pennies in the payment`
` 41     */`
` 42     public void receivePayment(int dollars, int quarters, `
` 43           int dimes, int nickels, int pennies)`
` 44     {`
` 45        payment = dollars + quarters * QUARTER_VALUE + dimes * DIME_VALUE`
` 46              + nickels * NICKEL_VALUE + pennies * PENNY_VALUE;`
` 47     }`
` 48     `
` 49     /**`
` 50        Computes the change due and resets the machine for the next customer.`
` 51        @return the change due to the customer`
` 52     */`
` 53     public double giveChange()`
` 54     {`
` 55        double change = payment - purchase;`
` 56        purchase = 0;`
` 57        payment = 0;`
` 58        return change;`
` 59     }`
` 60  }`