java枚举 enum

来源:互联网 发布:淘宝店卖家版官方下载 编辑:程序博客网 时间:2024/06/11 07:06

1.枚举类里一个成员变量


package com.camelot.bcp.entity.operateLog;


public enum WebMenuEnum {
PRODUCTS_PURCHASING("产品采购"),
PURCHASE_ORDER("采购订单"),
CANCEL_ORDER("取消订单"),
SIGNING_CONTRACT("合同签约");
 
       // 成员变量  
private String menuName; 
WebMenuEnum(String menuName) {
this.menuName = menuName;
}
public String getMenuName() {
return menuName;
}
}




2.枚举类里两个成员变量


public enum Color {  
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);

    // 成员变量  
    private String name;  
    private int index;  


    // 构造方法  
    private Color(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  

}  


3.写方法时,如何传递枚举



   定义一个方法,接受枚举变量:

     public static void record(WebMenuEnum enum) {
system.out.println( enum.getMenuName() );

}


   别人如何调你的方法:

     record( WEBMENUENUM.PRODUCTS_PRRCAHSING );

 


4.enum不能使用 extends 关键字继承其他类


enum的语法结构尽管和class的语法不一样,但是经过编译器编译之后产生的是一个class文件。该class文件经过反编译可以看到实际上是生成了一个类,该类继承了java.lang.Enum<E>。EnumTest经过反编译(javap com.hmw.test.EnumTest 命令)之后得到的内容如下:


public class com.hmw.test.EnumTest extends java.lang.Enum{
    public static final com.hmw.test.EnumTest MON;
    public static final com.hmw.test.EnumTest TUE;
    public static final com.hmw.test.EnumTest WED;
    public static final com.hmw.test.EnumTest THU;
    public static final com.hmw.test.EnumTest FRI;
    public static final com.hmw.test.EnumTest SAT;
    public static final com.hmw.test.EnumTest SUN;
    static {};
    public int getValue();
    public boolean isRest();
    public static com.hmw.test.EnumTest[] values();
    public static com.hmw.test.EnumTest valueOf(java.lang.String);
    com.hmw.test.EnumTest(java.lang.String, int, int, com.hmw.test.EnumTest);
}

所以,实际上 enum 就是一个 class,只不过 java 编译器帮我们做了语法的解析和编译而已。即enum不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承),只能implements接口。






原创粉丝点击