枚举(Java)

一、概念

枚举是一种特殊的类。

格式:

修饰符  enum  枚举类名{

       对象名称1,对象名称2,....;

       其他成员...

}

二、枚举类的特点

1.枚举类的第一行只能罗列一些名称,并且这些名称都是常量,每个常量记住一个枚举类对象

2.枚举类的构造器都是私有的,所以枚举类对外不能创建对象

3.枚举都是最终类,不可以被继承

4.枚举类中,从第二行开始,可以定义类的其他各种成员

        //枚举类提供一些额外的API
        A[] as = A.values(); //拿到所有对象放在一个数组中
        a1.getName(); // 拿名字
        A a3 = A.valueOf("X"); // 给一个字符串,返回一个对象
        a3.ordinal();//索引

三、抽象枚举

public enum B {
//    X, Y, Z;//不能直接写因为不能直接构建对象
    X(){
        @Override
        public void test(){}
},  //如此构建对象
    Y("六六"){
        @Override
        public void test(){
            System.out.println(getName());
        }        
    };
    public String getName() {
        return name;
    }

    B(String name) {
        this.name = name;
    }

    public void setName(String name) {
        this.name = name;
    }

    B() {
    }
    private String name;
    public abstract void test();
}

枚举(Java)_第1张图片

四、枚举的应用场景

用来表示一组信息,然后作为参数传输,进行信息的分类和标志

硬编码不好:

枚举(Java)_第2张图片

优化(使用常量):

枚举(Java)_第3张图片

优化(枚举):

都不用带前缀,带前缀会报错

枚举(Java)_第4张图片

你可能感兴趣的:(java,java,开发语言)