枚举的简介

什么是枚举?
        ** 需要在一定的范围内取值,这个值只能是这个范围内中的任意一个。
        ** 现实场景:交通信号灯,有三种颜色,但是每次只能亮三种颜色里面的任意一个
     
    * 使用一个关键字 enum
    ** enum Color3 {
        RED,GREEN,YELLOW;
    }
    * 枚举的构造方法也是私有的
 
    * 特殊枚举的操作(了解)
    ** 在枚举类里面有构造方法
        ** 构造方法里面有参数,需要在每个实例上面都写参数
    ** 在枚举类里面有抽象方法
        ** 在枚举的每个实例里面都重写这个抽象方法
 
9、枚举的api的操作
    ** name() :返回枚举的名称
    ** ordinal() :枚举的下标,下标从0开始
    ** valueOf(Class<T> enumType, String name) :得到枚举的对象
 
    ** 还有两个方法,都是这两个方法不在api里面,编译的时候生成两个方法
    *** valueof(String name)  转换枚举对象
    *** values()  获得所有枚举对象数组
 
    * 练习:枚举对象、枚举对象下标、枚举对象名称表示之间的转换
    //知道枚举的对象,得到枚举名称和下标
    @Test
    public void test1() {
        //得到枚举对象
        Color100 c100 = Color100.RED;
        //枚举名称
        String name = c100.name();
        //枚举的下标
        int idx = c100.ordinal();
        System.out.println(name+" "+idx);
    }
 
    //知道枚举的名称,得到枚举的对象和下标
    @Test
    public void test2() {
        String name1 = "GREEN";
        //得到对象
        Color100 c1 = Color100.valueOf(name1);
        //枚举下标
        int idx1 = c1.ordinal();
        System.out.println(idx1);
    }
 
    //知道枚举的下标,得到枚举的对象和名称
    @Test
    public void test3() {
        int idx2 = 2;
        //得到枚举的对象
        Color100[] cs = Color100.values();
        //根据下标得到对象
        Color100 c12 = cs[idx2];
        //得到枚举的名称
        String name = c12.name();
        System.out.println(name);
    }
 
10、静态导入(了解)
    * 可以在代码里面,直接使用静态导入方式,导入静态方法或者常量
    * import static XX.XX.xxx
 
    * import static java.lang.System.out;
    import static java.util.Arrays.sort;
 
    ** 比如现在实现一个计算器 在Math类里面
 
posted @ 2016-07-08 10:09  会飞的小祥  阅读(179)  评论(0编辑  收藏  举报