枚举类也是一种特殊形式的Java类。
枚举类中声明的每一个枚举值代表枚举类的一个实例对象。
与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(这点不难理解)。
枚举类也可以实现接口、或继承抽象类。
其实枚举类就是其构造方法私有化的普通类
package Enum;
public class Enum_Test {
class User
{
int Id ;
String User_Name;
private Role role ;
private Role1 role1 ;
}
public void run()
{
User user= new User();
user. Id=123;
user. User_Name="孙业宝" ;
user. role=Role. Boss;
user. role1=Role1. WORKER;
}
}
enum Role1{
BOSS,HR ,WORKER;
}
class Role
{
private Role(){}
public static final Role Boss= new Role();
public static final Role HR=new Role();
public static final Role WORKER= new Role();
}
package Enum;
import org.junit.Test;
public class enum_API {
/**
* 已知对象获取枚举名称 及下标
*/
@Test
public void run()
{
Love gile=Love. GILR;
//获取铝盘
System. out.println(gile.name());
//获取下标
System. out.println(gile.ordinal());
}
/**
* 已知枚举名称,获取下标及对象
*/
public void run1()
{
String name= "GILR";
Love gile=Enum. valueOf(Love.class, name);
System. out.println(gile.name());
System. out.println(gile.ordinal());
}
/**
* 已知枚举下标,获取名称及对象
*/
public void run2()
{
int ind=2;
Love [] loves=Love. values();
Love code=loves[ind];
System. out.println(code.name());
}
}
enum Love{
GILR,RADE ,SLEEP;
}