了解什么是枚举(enumeration)

1、枚举是一组常量的集合。还可以看成包含有限特定的对象。

2、自定义枚举的步骤:

    将构造器私有化private 将get方法拿掉 在类的内部直接创建固定的对象,比如: public static Season SPRING = new Season("春天","温暖"); 使用:Season.SPRING,这个使用时最重要的 优化:public final static Season SPRING = new Season("春天","温暖");

3、final修饰的变量一般都是大写。

4、在本类创建对象



使用enumeration关键字实现枚举

1、使用关键字enum替代class。使用这个关键字后默认继承Enum类,因此枚举类不能在继承其他的类了。但是可以实现接口。

2、常量名(实参列表):SPRING("春天","温暖");直接和构造器匹配。有多个常量对象。中间用,号间隔。

eg:

//常量对象要写在最前面
SPRING("春天","温暖"),WINTER("冬天","冷");
private String name ;
private String  desc;

//下面就是构造器

3、注意事项

    使用enum关键字创建枚举类的时候,会默认继承Eunm类。 如果使用无参构造器,后面的括号可以不写。 枚举之间用,好分隔。 枚举对象放在行首。 枚举对象是静态性质的,所以我们可以知道要是赋值的话其实是一个地址。

4、常用的方法

增强for循环:

for (int i :nums){
    sout("i = " + i);
}

//就是将数组中nums的值取出来赋值给i,知道取出最后一个i。
package enumeration;

public class eum01 {


    public static void main(String[] args) {
        //给他一个索引
        Season spring = Season.SPRING;
        //给他一个索引,觉得
        System.out.println(spring.name());
        System.out.println("次序  " + spring.ordinal());
        System.out.println("######");

        final Season[] values = Season.values();
        //遍历枚举类中的信息
        for(Season i :values){
            System.out.println(i);
        }
        //增强for循环
        final Season spring1 = Season.valueOf("SPRING");


        System.out.println(Season.SPRING.compareTo(Season.SUMMER));
        //Season.SPRING   换成上面的spring也是可以的,其实还是最底层的东西啊。
        //做减法
    }
}

enum Season{
    SPRING("春天","我爱你春天"),SUMMER("夏天","夏天的风吹动");


    private String name;
    private String dsc;

    @Override
    public String toString() {
        return "Season{" +
                "name=" + name +  +
                ", dsc=" + dsc +  +
                };
    }

    Season(String name, String dsc) {
        this.name = name;
        this.dsc = dsc;
    }
}
经验分享 程序员 微信小程序 职场和发展