// Uses the CoinPurse class // Beth Katz - January 2008 public class PlayMoney { public static void main(String[] args) { CoinPurse leather, vinyl, linen, plastic, squeeze; CoinPurse empty, copy; leather = new CoinPurse( ); printPurse(leather, "Leather"); System.out.println("Leather contains " + leather.numQuarters( ) + " quarters."); leather.addQuarters(3); System.out.println("Leather contains " + leather.numQuarters( ) + " quarters."); System.out.println("After adding three quarters, leather should contain 75 cents."); printPurse(leather, "Leather"); System.out.println( ); vinyl = new CoinPurse(2, 1, 3, 4); printPurse(vinyl, "Vinyl"); linen = new CoinPurse(1, 0, 0, 0); printPurse(linen, "Linen"); plastic = new CoinPurse(2, 3, 4, 9); printPurse(plastic, "Plastic"); squeeze = new CoinPurse(8, 7, 6, 1); printPurse(squeeze, "Squeeze"); System.out.println( ); plastic.transferFrom(squeeze); System.out.println("After transfer from squeeze, squeeze should be empty" + " and plastic should have ten of each coin denomination."); printPurse(plastic, "Plastic"); printPurse(squeeze, "Squeeze"); System.out.println( ); empty = new CoinPurse( ); reportEquals("Squeeze and empty", squeeze, empty); copy = plastic; reportEquals("Copy and plastic after assignment", copy, plastic); copy = plastic.clone( ); reportEquals("Copy and plastic after cloning", copy, plastic); } // prints a purse with a label public static void printPurse(CoinPurse cp, String label) { System.out.println(label + " purse contains " + cp + " which total " + cp.value( ) + " cents."); } // report on whether or not two purses are equal using equals and == public static void reportEquals(String label, CoinPurse a, CoinPurse b) { System.out.print(label + " are "); if (!a.equals(b)) { System.out.print("not "); } System.out.println("equal by equals method."); System.out.print(label + " are "); if (a != b) { System.out.print("not "); } System.out.println("equal by ==."); } }