枚举

枚举的本质是什么

枚举的本质就是一个类,这个类和普通类不同的地方在于有一个枚举项
这些枚举项每一个都是一个枚举类的实例对象,这些实例都是常量,默认被final、public、static修饰
每个枚举类型继承java.lang.Enum,所以枚举类不能再继承其他类型

public enum TypeEnum {
    枚举项1,枚举项2
    成员变量1
    成员变量2
    方法1(){}
    方法2(){}
}
枚举如何使用
public enum  TypeEnum {

    INSTANCE1("name" , "code"),
    INSTANCE2("name" , "code");

    private String typeName;
    private String typeCode;

    // 必须是私有

    private TypeEnum(String typeName , String typeCode){
        this.typeName = typeName;
        this.typeCode = typeCode;
    }

    public String getTypeName() {
        return typeName == null ? "" : typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public String getTypeCode() {
        return typeCode == null ? "" : typeCode;
    }

    public void setTypeCode(String typeCode) {
        this.typeCode = typeCode;
    }

}

// 使用
TypeEnum.INSTANCE1.getTypeCode();
TypeEnum.INSTANCE1.getTypeName();
枚举类和接口

枚举类可以实现接口,使用的时候可以向上转型为接口

public enum TypeEnum implements Compare{

    INSTANCE1(),
    INSTANCE2();

    @Override
    public void compare() {}

}

// 使用
TypeEnum02 typeEnum = TypeEnum02.INSTANCE1;
Compare compare = TypeEnum02.INSTANCE1;
枚举的对比

因为枚举是单例的,所以同一个枚举的同一个实例是hashCode是一样的
在Java里面 == 结果是一样的
在Kotlin里面 == 和 === 的结果也都是一样的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 有的人说,不推荐使用枚举。有的人说,枚举很好用。究竟怎么使用,如何使用,仁者见仁智者见智。总之,先学会再说~ 为什...
    Sharember阅读 6,660评论 0 18
  • 有的人说,不推荐使用枚举。有的人说,枚举很好用。究竟怎么使用,如何使用,仁者见仁智者见智。总之,先学会再说~ 为什...
    秋刀鱼茶泡饭QAQ阅读 4,406评论 0 5
  • 问:Java 枚举类比较用 == 还是 equals,有什么区别? 答:java 枚举值比较用 == 和 equa...
    Little丶Jerry阅读 5,614评论 1 20
  • 一、枚举类的使用 枚举类的理解:类的对象只有有限个,确定的。称此类为枚举类 当需要定义一组常量时,强烈建议使用枚举...
    zqyadam阅读 2,578评论 0 0
  • 1. 为什么要引入枚举类 一个小案例: 你写了一个小程序,不过好久不用了,突然有一天,你想使用一下它。程序要想正确...
    天不生我小金阅读 5,283评论 0 0