What is enum in java? how we can use Enumerations?
What is Enum in Java? |
- Version prior to JDK 5 lacked on feature that many programmers felt was needed : “Enumeration”.
- An enumeration is a list of named constants.
- In language such as c++, enumerations are simply lists of named integer constants.
- In Java, an enumeration defines a class type. By example, in java, an enumerations into classes, the concept of the enumeration is greatly expanded.
For example, in java, an enumeration can have constructors, methods, and instance variables.
java.lang.Enum Implementation
C:\>javap java.lang.Enum
public abstract class java.lang.Enum<E extends java.lang.Enum<E>> implements java.lang.Comparable<E>, java.io.Serializable
{
public final java.lang.String name();
public final int ordinal();
protected java.lang.Enum(java.lang.String, int);
public java.lang.String toString();
public final boolean equals(java.lang.Object);
public final int hashCode();
protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException;
public final int compareTo(E);
public final java.lang.Class<E> getDeclaringClass();
public static <T extends java/lang/Enum<T>> T valueOf(java.lang.Class<T>, java.lang.String);
protected final void finalize();
public int compareTo(java.lang.Object);
}
C:\>
Let us have an Example
EnumDemo.java
enum Fruits
{
mango, banana, pine_apple, water_melon,Orange
}
class EnumDemo{
public static void main(String arg[])
{
Fruits fr;
fr=Fruits.mango;
System.out.println("value of fr: " +fr);
fr=Fruits.banana;
if(fr == Fruits.banana)
{
System.out.println("fr contains banana");
}
switch (fr)
{
case mango:
System.out.println("mango is green");
break;
case banana:
System.out.println("banana is yellow");
break;
case pine_apple:
System.out.println("pine_apple is red");
break;
case water_melon:
System.out.println("water_melon is combination of red and yellow");
break;
case Orange:
System.out.println("orange is yellow");
break;
}
}
}
Fruits Enum Declaration.
C:\>javap Fruits
Compiled from "EnumDemo.java"
final class Fruits extends java.lang.Enum<Fruits> {
public static final Fruits mango;
public static final Fruits banana;
public static final Fruits pine_apple;
public static final Fruits water_melon;
public static final Fruits Orange;
public static Fruits[] values();
public static Fruits valueOf(java.lang.String);
static {};
}
All enumerations automatically contain two predefined methods:
- public static enum-type[] values()
- public static enum-type valueOf(String str).
Output
C:\>java EnumDemo
value of fr: mango
fr contains banana
banana is yellow
Recent Comments