java基础之枚举的深入研究

引言:

  这里的有关枚举的所有知识来自于张传祥的视频以及java公众号的引用!本人不过是拾人牙慧,这篇文章的知识

全是引用别人总结外加自己的理解,如果有什么版权问题,我会将这篇文章撤销!请各位指正!最后,这篇文章涉及重点知识请移步张传祥视频和java编程公众号。我虽没有联系别人我已经引用(其实就是懒),但是我尊重被人的知识版权!Thanks♪(・ω・)ノ。

背景:

  没有学习看过java公众号的枚举之前从未想过枚举在java中的重要性!下面从安全性和程序可读性探讨!

     -安全性:

               * 在java没有枚举类型以前,通常采用的模式为public final static,如果你做过简单的java程序开发应该了解!

               * 假定采用这种方法书写一个函数,要求传入值。这里传入值的时候会出现无法保证 传入值合法

                (详细了解请移步java编程这个公众号,这里我只整理我自己的知识)

               * 很显然这不符合安全性的要求

       -可读性:

               * 使用public final static 的方法输出的只能是一堆数字,很显然如果不看你的定义,谁知道你那个是个什么东东

               *很显然这不符合可读性的要求

               *综合上面两个因素枚举模式的缺点显著,java在1.5以后就提供了枚举类型

手动实现枚举类型:

    这里将会手动实现枚举类型,我只会贴上代码,如果不懂的话,请移步张传祥的视频。感觉真像打广告的!

    java基础之枚举的深入研究

    - 每个枚举值都是一个对象

    -传输的时候只能拿到这几个值,否则就会出错

    -如果想要输出不同的值就可以在通过抽象方法让对象实例并输出不同的结果

枚举的语法:

    -基本枚举的基本使用:

       java基础之枚举的深入研究

    -带构造方法的枚举类

        *任何构造方法必须是私有的,从上面手动实现枚举类中可窥一二

            java基础之枚举的深入研究

  -带有抽象方法和普通方法的枚举类型

        *抽象方法必须在确定枚举后面继承,书写相应的代码。每一个都是单独的类

        *普通方法可以是public 类型,用于获得传出值

        java基础之枚举的深入研究

总结:

        通过这种方式,在编写函数的时候,只能传输这几个对象值,不能够传输其它例如数字的值,否则类型错误。

        枚举类型中的数字主要是用来标识对象处在第几个位置,不能够直接使用,必须通过ordinal才能获取值并且不能够用于传输到枚举对象中

        java万物皆对象