Java Reference
In-Depth Information
Display 6.15
The Method values
(part 2 of 2)
Sample Dialogue
Enter hours worked for MONDAY
8
Enter hours worked for TUESDAY
8
Enter hours worked for WEDNESDAY
8
Enter hours worked for THURSDAY
8
Enter hours worked for FRIDAY
7.5
Total hours worked = 39.5
TIP: Enumerated Types in
switch
Statements
★
You can use an enumerated type to control a
switch
statement. In other words, the
type of the controlling expression in a
switch
statement can be an enumerated type.
This is illustrated in Display 6.16. Note that the case labels must be unqualified
names; use
VANILLA
, not
Flavor.VANILLA
.
This program uses the static method
valueOf
to convert an input string to a value
of the enumerated type. For example,
Flavor.valueOf("STRAWBERRY")
returns
Flavor.STRAWBERRY
. Note that the program changes the input to all
uppercase letters before giving it as an argument to the method
valueOf
. The method
valueOf
requires an exact match. An invocation of
Flavor.valueOf("Vanilla")
will end your program with an error message;
5
you must use
"VANILLA"
to match the
exact spelling (including upper- versus lowercase) of the value in
Flavor
.
At this point, you may wonder what the difference is between
STRAWBERRY
and
Flavor.STRAWBERRY
and how to tell which one to use in a given situation. The value of
the enumerated type is
STRAWBERRY
. We write
Flavor.STRAWBERRY
to say we mean
STRAWBERRY
as defi ned in
Flavor
, as opposed to
STRAWBERRY
as defi ned in some
other type, such as
enum
Berry {STRAWBERRY. BLUEBERRY, RASPBERRY};
(continued)
5
After you cover exceptions in Chapter 9, you will be able to cope with answers such as
PISTACHIO
that
do not correspond to any value of type
Flavor
. An invocation of
Flavor.valueOf
(
"PISTACHIO"
)
will throw an
IlllegalArgumentException
, something explained in Chapter 9 . Until then, your program
will simply give an error message when
valueOf
cannot cope with its argument.