Java 枚举与类的区别

定义:

枚举是指一组固定常量组成合法值的类型

首先是固定常量,一组有限常量集,比如一年的四个季节,太阳系的行星。其次,枚举是一种特殊的类型,定义了自己的一些规则,这些规则是建立在类规则之上的,是一种 type。

性质:

枚举是真正的 final,客户端不允许创建枚举类的实例,也不能对其进行拓展

Java 枚举本质上是 int 值。只能通过公有的静态 final 域为枚举类导出实例。

public enum Color {
    GREEN,RED,BLUE,GRAY;
}

实际上枚举的完整的结构为:

public enum Color {
    GREEN,RED,BLUE,GRAY;
    Color() {
    }

如果在 Color() 构造方法之前加上 private 则不会有任何问题。如果加上 public 等修饰符,IDE 会报错,也就是编译器不会通过。其实这是枚举与类的根本区别,就在于构造方法私有。

当然如果仅仅是构造方法私有,不再提供构造方法了,也就是说外界不能 new 实例,如果仅从这样看,那枚举就没有什么用了。
其实我们用过枚举的都知道,GREEN、RED 都是 Color 型的实例,其实枚举也可以看作自动处理了一些东西,帮助简化了代码,翻译成类大致就是:============

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值