【Java】27.常用API之lang.Enum抽象类与enum枚举类型

枚举常数与枚举类型

 

在Java接口中会经常看到定义这类public static final的常数。这叫作枚举常数。比如可以使用在switch语法等等在编写程序时会更清晰和可维护。为了编写方便,可以直接省略前面的修饰,事实上在接口里定义的变量值都不可修改。

在JDK5之后新增了enum语法,实际上用关键字enum定义了一个特殊的类,继承自java.lang.Enum(是一个抽象类),这是编译程序处理的,不能继承,否则报错。

public enum Action{

    STOP,RIGHT,LEFT,UP,DOWN

}

        经过反编译,我们可以了解enum枚举常数的部分细节

public final class Action extends Enum{

        private Action(String s,int i){

            super(s,i);
        }

       
        public static final Action STOP;
        ……
        
        ……
        public static final Action DOWN;


        static{
            STOP=New Action("STOP",0);
            ……
        }

}

         结论:用enum定义的是特殊类,定义的枚举常数都是public static final,而且是这个类的实例。而且这个类的构造函数是private,也就是说只能在类中才可以实例化,在类外使用时,我们只能传入Action实例、声明Action以及在switch-case语法中列举Action实例。关于更多自定义枚举,日后会详细说。

 

参考文章

1.Java enum的使用详解+总结

https://www.cnblogs.com/hyl8218/p/5088287.html

2.Java enum的用法详解

https://www.cnblogs.com/liaojie970/p/6474733.html

3.Java枚举(enum)详解:Java声明枚举类型、枚举(enum)类、EnumMap 与 EnumSet

http://c.biancheng.net/view/1100.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值