Java Reference
In-Depth Information
Listing 3-62
's constructor accepts a denomination value, which it assigns to a
private
blankfinalfieldnamed
denomValue
—allfieldsshouldbedeclared
final
becauseconstantsareimmutable.Noticethatthisvalueispassedtoeachconstantduring
its creation (
PENNY(1)
, for example).
Caution
Whenthecomma-separatedlistofconstantsisfollowedbyanythingother
thananenum'sclosingbrace,youmustterminatethelistwithasemicolonorthecom-
piler will report an error.
Furthermore, this listing's
denomValue()
method returns
denomValue
, and its
toDenomination()
methodreturnstheumberofcoinsofthatdenominationthatare
contained within the umber of pennies passed to this method as its argument. For ex-
ample, 3 nickels are contained in 16 pennies.
Listing 3-63.
Exercising the enhanced
Coin
enum
class Coins
{
public static void main(String[] args)
{
if (args.length == 1)
{
int umPennies = Integer.parseInt(args[0]);
System.out.println(numPennies+" pennies is equi-
valent to:");
int
umQuarters
=
Coin.QUARTER.toDenomination(numPennies);
System.out.println(numQuarters+"
"+Coin.QUARTER.toString()+
(numQuarters != 1 ? "s," :
","));
numPennies
-=
umQuar-
ters*Coin.QUARTER.denomValue();
int
umDimes
=
Coin.DIME.toDenomination(numPennies);
System.out.println(numDimes+"
"+Coin.DIME.toString()+