Java枚举

引入:
    当有一些类,希望它的成员的值是具体的有限的值,且只读不需要修改,不希望用户去自定义其他的值。
    比如季节类,它的成员只能是春夏秋冬,不希望用户构造其他的值。
枚举enum:
    枚举是一组的特殊常量的集合。
    是一种特殊的类。
枚举实现:
1、自定义:
①构造器私有化,防止用户自定义。
②去掉set()相关方法,防止属性被修改。
③在类内部直接创建固定的对象。
    (public static final)允许被外界直接访问,且值不变。
2、使用enum关键字
①对象名(构造器参数),如果有多个,逗号相隔。(该语句,即常量对象写在最前面)
②写出属性。
③写出构造器。
细节:
1、枚举对象一般大写。
2、enum相当于自动把构造器的访问权限改为private.
        且public static final Season SPRING = new Season("春天","温暖");
        等价于SPRING("春天","温暖");
        使用 SPRING("春天","温暖");必须明确使用哪个构造器。
         若调用无参构造器,可以简化为SPRING;即省略实参和小括号。
3、enum规定常量对象在最前面。
4、Season s1 = Season.SPRING
     Season s2 = Season.SPRING
     s1 == s2;//正确,因为是静态的,这两个都指向同一个地址。
5、使用关键字enum就无法继承其他类了,因为隐式继承了Enum类,
     但是可以实现接口。
6、使用enum时,会默认继承Enum类。
    反编译Season.class:
7、从5、反编译可以看出,它继承自Enum,则其含有父类的所有方法。
    
8、enum常用方法
从反编译还可以看到有一个values()方法,该方法返回改枚举类的所有对象。
  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值