Java Reference
In-Depth Information
Listing I.1 gives a program that demonstrates the use of enumerated types.
L
ISTING
I.1
EnumeratedTypeDemo.java
1
public class
EnumeratedTypeDemo {
2
static enum
Day {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
define an enum type
3
FRIDAY, SATURDAY};
4
5
public static void
main(String[] args) {
6 Day day1 = Day.FRIDAY;
7 Day day2 = Day.THURSDAY;
8
9 System.out.println(
"day1's name is "
+ day1.name());
10 System.out.println(
"day2's name is "
+ day2.name());
11 System.out.println(
"day1's ordinal is "
+ day1.ordinal());
12 System.out.println(
"day2's ordinal is "
+ day2.ordinal());
13
14 System.out.println(
"day1.equals(day2) returns "
+
15 day1.equals(day2));
16 System.out.println(
"day1.toString() returns "
+
17 day1.toString());
18 System.out.println(
"day1.compareTo(day2) returns "
+
19
declare an enum variable
get enum name
get enum ordinal
compare enum values
day1.compareTo(day2));
20 }
21 }
day1's name is FRIDAY
day2's name is THURSDAY
day1's ordinal is 5
day2's ordinal is 4
day1.equals(day2) returns false
day1.toString() returns FRIDAY
day1.compareTo(day2) returns 1
An enumerated type
Day
is defined in lines 2-3. Variables
day1
and
day2
are declared
as the
Day
type and assigned enumerated values in lines 6-7. Since
day1
's value is
FRIDAY
,
its ordinal value is 5 (line 11). Since
day2
's value is
THURSDAY
, its ordinal value is 4
(lineĀ 12).
Since an enumerated type is a subclass of the
Object
class and the
Comparable
interface,
you can invoke the methods
equals
,
toString
, and
comareTo
from an enumerated object
reference variable (lines 14-19).
day1.equals(day2)
returns true if
day1
and
day2
have
the same ordinal value.
day1.compareTo(day2)
returns the difference between
day1
's
ordinal value to
day2
's.
Alternatively, you can rewrite the code in Listing I.1 into Listing I.2.
L
ISTING
I.2
StandaloneEnumTypeDemo.java
1
public class
StandaloneEnumTypeDemo {
2
public static void
main(String[] args) {
3 Day day1 = Day.FRIDAY;
4 Day day2 = Day.THURSDAY;
5
6 System.out.println(
"day1's name is "
+ day1.name());
7 System.out.println(
"day2's name is "
+ day2.name());
8 System.out.println(
"day1's ordinal is "
+ day1.ordinal());
Search WWH ::
Custom Search