代码改变世界

java枚举和仿枚举

2017-08-02 17:05  猪牙哥  阅读(284)  评论(0编辑  收藏  举报
enum Color{//枚举
    RED,GREEN,YELLOW;
}
class Color1{//模仿枚举
    private static int ordinal=-1;
    private Color1(){
        ordinal++;
    }
    public static final Color1 RED=new Color1();
    public static final Color1 GREEN=new Color1();
    public static final Color1 YELLOW=new Color1();
    
    public int ordinal(){
        return ordinal;
    }
    
}

在这里我只模仿了获取枚举的下标,大家有兴趣可以模仿一下其他方法

补充一下,枚举是允许写带参的构造方法的,不过构造方法要是private,还可以拥有成员变量,这个就不限定访问权限,实例:

enum ABC{
    A(3),B(2),C(3);//带有参数的枚举,其中参数类型是int
    private int value;//成员变量
    private ABC(int value){//私有的构造方法
        this.value=value;
    }
    /**
     * System.out.println(A)输出的是自己想要的值,super.toString();return的是name
     */
    @Override
    public String toString() {
        return String.valueOf(value);
    }
}