Reference:
http://howtodoinjava.com/2012/12/07/guide-for-understanding-enum-in-java/
Enumerations (in general) are generally a set of related constants. Each constant represents a specific instance of its Enumerations class. For example:
public
enum
DIRECTION {
EAST,
WEST,
NORTH,
SOUTH
//optionally can end with ";"
}
Here EAST, WEST, NORTH and SOUTH are final static inner classes of Direction of type Direction extends java.lang.Enum.
Enums are comparable and serializable implicitly. Also, all enum types in java are singleton by default. So, you can compare enum types using ‘==’ operator.
You can give define your own constructors to initialize the state of enum types.enum
Direction {
// Enum types
EAST(
0
), WEST(
180
), NORTH(
90
), SOUTH(
270
);
// Constructor
private
Direction(
final
int
angle) {
this
.angle = angle;
}
// Internal state
private
int
angle;
public
int
getAngle() {
return
angle;
}
}
Use template methods in enum:
package
enumTest;
public
enum
Direction {
// Enum types
EAST(
0
) {
<strong>
@Override
</strong>
public
void
shout() {
System.out.println(
"Direction is East !!!"
);
}
},
WEST(
180
) {
@Override
public
void
shout() {
System.out.println(
"Direction is West !!!"
);
}
},
NORTH(
90
) {
@Override
public
void
shout() {
System.out.println(
"Direction is North !!!"
);
}
},
SOUTH(
270
) {
@Override
public
void
shout() {
System.out.println(
"Direction is South !!!"
);
}
};
// Constructor
private
Direction(
final
int
angle) {
this
.angle = angle;
}
// Internal state
private
int
angle;
public
int
getAngle() {
return
angle;
}
<strong>
// Abstract method which need to be implemented</strong>
public
abstract
void
shout();
}
No comments:
Post a Comment