java笔记12-枚举

枚举可以看成一个特殊的类,但是只能实例化出特定值的对象。

1、枚举类型都隐式继承了java.lang.Enum类,因此不能继承其他类,但可以实现接口;

2、枚举类型只能有私有的构造方法(java运行时创建,外部不能进行实例化);

3、不能泛型化;

4、当有字段和方法时,枚举常量的列表必须以分号结尾;

5、编译器在创建枚举时会自动添加一些特殊方法。例如,它们具有一个静态values方法。

 

enum Day{
    //枚举只能创建下面的对象,必须要写在第一行,使用方式:Day day =Day.monday;
    monday("星期一",1),tuesday,wednesday,thursday,friday,saturday,sunday;//因为有方法,这个地方要用分号结尾
    private String name;
    private int index;
    //如果对象写成monday这种形式 则必须有带参数的构造方法 带参数的构造方法必须私有防止其他人实例化使用
    private Day(){}
    private Day(String name,int index){
        this.name=name;
        this.index=index;
    }
}

 

public class TestEnum {
    public static void main(String[] args) {
        //创建对象
        Day day =Day.monday;
        Day dd=day.valueOf("sunday");
        //下标值的差
        System.out.println(day.compareTo(dd));
        //获取枚举值的名字和下标
        System.out.println(dd.name()+"--"+dd.ordinal());
        //获取对象的属性
        System.out.println(day.getName());
        System.out.println(day.getIndex());
        //获取所有的枚举值
        Day [] days=Day.values();
        for(Day d:days)
            System.out.println(d.name()+"--"+d.ordinal());
    }
}

 

原文地址:https://www.cnblogs.com/ysmdbk/p/11026746.html