枚举类

枚举类也是一种特殊形式的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;
}
原文地址:https://www.cnblogs.com/haofaner/p/5623544.html