Working with ENUM
ENUM is just a list of set of value which are static and final.Executing the below code will have a output like one below

public class Test {
	public enum Company {
		EBAY, PAYPAL, GOOGLE, YAHOO, ATT
	}

	public static void main(String[] args) {
                System.out.println(Company.EBAY);
	}
}

Output

  EBAY

Now what you can do is to make this constant (static and final) to have further attributes like one below.

public enum Company {
EBAY(30), PAYPAL(10), GOOGLE(15), YAHOO(20), ATT(25);
private int value;
 
private Company(int value) {
this.value = value;
}
}

and more Values with overloaded constructor

public class Test1 {

	public enum JobStatus {
		OPEN("Open", "Its Open", "1"), ERROR("Error", "Its a Error", "2"), WORKING(
				"Working", "Its Working", "3"), CLOSED("Closed", "Its Closed");
		private String	value;
		private String	label;
		private String	order;

		private JobStatus(String label, String value, String order) {
			this.label = label;
			this.value = value;
			this.order = order;
		}

		private JobStatus(String label, String value) {
			this.label = label;
			this.value = value;
		}

		public String getValue() {
			return this.value;
		}

		public String getLabel() {
			return this.label;
		}
	}

	public static void main(String[] args) {
		System.out.println(JobStatus.OPEN.value);
		System.out.println(JobStatus.OPEN.label);
		System.out.println(JobStatus.OPEN.order);
		System.out.println(JobStatus.CLOSED.order);
	}
}

Output

Its Open
Open
1
null

When you need a predefined list of values which do not represent some kind of numeric or textual data, you should use an enum. For instance, in a chess game you could represent the different types of pieces as an enum

enum ChessPiece {
PAWN,
ROOK,
KNIGHT,
BISHOP,
QUEEN,
KING;
}

Assigning Values to ENUM

public enum Company {
EBAY(30), PAYPAL(10), GOOGLE(15), YAHOO(20), ATT(25);
private int value;
 
private Company(int value) {
this.value = value;
}
}
  • All enums implicitly extend java.lang.Enum.
  • MyEnum.values() returns an array of MyEnum’s values.
  • Enum constants are implicitly static and final and can not be changed once created.
  • Enum can be safely compare using “==” equality operator
  • An enum can be declared outside or inside a class, but NOT in a method.
  • An enum declared outside a class must NOT be marked static, final , abstract, protected , or private
  • Enums can contain constructors, methods, variables, and constant class bodies.
  • enum constructors can have arguments, and can be overloaded.