Java enum type

<<Previous

Next >>




Enum

enum is a data type to store array of predefined values. enums are only to store fixed set of constants. This means they cannot store values that will change. Also, once a set of values are stored during compile time, No constants can be added to or removed from the set

What does Enum Store?

enum is to be used when you need to store an array of values that is displayed and referenced as a name. This is in contrast to indexes used in a regular array. Each element in enum can be simple values or an object having fields which requires a private constructor to be created to set the values.

Example

	public enum ColorsOfRainbow{
	VIOLET, INDIGO, BLUE, GREEN, YELLOW, ORANGE, RED;
	}
	public enum ColorsOfRainbow{
		VIOLET("ee82ee"), INDIGO("4B0082"),
		BLUE("0000ff"), GREEN("00ff00"),
		YELLOW("FFFF00"), ORANGE("ffa500"),
		RED("ff0000");
	}

This means that variable of the above enum can have only one of the 7 values listed

Example

ColorsOfRainbow color = ColorsOfRainbow.INDIGO;

enum - Methods and Constructors

enum can have methods. Enum can have only private constructor to get values assigned to variables in enum. public constructors cannot be used in enum as there is no reason to call these constructors outside the class.

Example

public enum ColorsOfRainbow {
	VIOLET("ee82ee"), INDIGO("4B0082"),
	BLUE("0000ff"), GREEN("00ff00"),
	YELLOW("FFFF00"), ORANGE("ffa500"),
	RED("ff0000");

	String colorCode;
	private ColorsOfRainbow(String colorCode){
		this.colorCode =colorCode;
	}
	public String getColorCode(){
		return colorCode;
	}

	public static void main(String a[]){
		ColorsOfRainbow color = ColorsOfRainbow.INDIGO;
		System.out.println(color);
		System.out.println(color.getColorCode());

	}
}

Output

INDIGO
4B0082

Example

public enum DayVsBusiness {

	//Cost, Discount, Margin
	SUNDAY(10000,5,15),
	MONDAY(20000,5,15), TUESDAY(10000,5,15),
	WEDNESDAY(10000,5,15), THURSDAY(10000,5,15),
	FRIDAY(10000,5,15), SATURDAY(10000,5,15);

	double cost, discount, margin;

	private DayVsBusiness(int cost, int discount,int margin){
		this.cost=cost;
		this.discount=discount;
		this.margin=margin;
	}

	public double netProfit(){
		return cost*(1+discount/100)*(margin/100);
	}

	public static void main(String a[]){
		DayVsBusiness dayVsBusiness = DayVsBusiness.FRIDAY;
		System.out.println(dayVsBusiness);
		System.out.println(dayVsBusiness.netProfit());

		DayVsBusiness dayVsBusinessMonday = DayVsBusiness.MONDAY;
		System.out.println(dayVsBusinessMonday);
		System.out.println(dayVsBusinessMonday.netProfit());
	}
}

Output

FRIDAY
1575.0
MONDAY
3150.0

<<Previous

Next >>