Java Enumeration

ref: http://www.studytonight.com/java/enumerations

Enumerations

Enumeration was added to Java language in JDK5. Enumeration means a list is named constant. In java, enumeration

defines a class type. An Enumeration can have constructors, methods and instance variables. It is created using

enum keyword. Each enumeration constant is public, static and final by default.

Even though enumeration defines a class type and have constructors, you do not instantiate an enum using new.

Enumeration variables are used and declared in much a same way as you do in primitive variables

How to Define and Use an Enumeration

enum Subject           //Enumeration defined
{
 Java, Cpp, C, Dbms
}
1. Java, Cpp, C, Dbms are called enumeration constants. They are public,static, final by default
2. variable of enumeration can be defined directly without new keyword
Subject sub
3. variable of enumeration type can have only enumeration constants as value
sub = Subject.java;

Values( ) and ValueOf( ) method

All the enumerations has values() and valueOf() methods inthem.

values() :method returns an array of enum-type containing all the enumeration constants in it.

  public static enum-type[] values()

valueOf(): method is used to return enumeration constant whose value is equal to the string passed in as argument while calling this method

  public static enum-type valueOf(String str)

Points to remember about Enumerations

1. Enumeration are of class type, and have all capabilities taht a java class has

2. Enumerations can have constructors, instance variables, methods and can even implement interfaces

3. Enumerations are not instantiated using new

4. All Enumerations by default inherite java.lang.Enum class

enum Student
{
 John(11), Bella(10), Sam(13), Viraaj(9);
 private int age;                   //age of students
 int getage { return age; }
 public Student(int age)
 {
  this.age= age;
 }
}

class EnumDemo
{
 public static void main( String args[] )
 {
  Student S;
  System.out.println("Age of Viraaj is " +Student.Viraaj.getage()+ "years");
 }
}
Output :
Age of Viraaj is 9 years