///////////////////////////////////////// //// Wallet.java ///////////////////////////////////////// public class Wallet { private int tw, f; public Wallet( ) { tw = 0; f = 0; } public Wallet (int tw0, int f0) { if (tw0 < 0 || f0 < 0 ) { throw new IllegalStateException( "Illegal negative value:" + tw0 + " " + f0 ); } tw = tw0; f = f0; } public int value( ) { return (tw*20) + (f*5); } public boolean canChange( ) { return (f >= 4); } public void minimizeWhile( ) { while (canChange( )) { f -= 4; tw++; } } public void minimize( ) { tw += f/4; f = f % 4; } public String toString( ) { return (tw + " 20s and " + f + " 5s total " + value( )); } }