java大数据的教程(Java里的枚举超级易懂版)

枚举类是一个小但有用的结构。

基本概念

枚举类型的英文是:enumerated type。 在 Java 里是一组特殊的类,用 enum 进行声明。 声明的是一组常量。

说明 Java运行的时候,最开始就会把它放在方法区里加载好。

在 main函数 里调用,直接打印就是它本身。

一般我们对于常用的常量,要么就单独建一个类,叫 Constant, 然后在类里这样定义:

public final String SPRING = "SPRING"; public final String SUMMER = "SUMMER"; public final String AUTUMN = "AUTUMN"; public final String WINTER = "WINTER"; 复制代码

通过 Constant.XXX 来调用,如定义春天就是:

String Season = Constant.SPRING 这样把 "SPRING" 赋给了 Season 字符串。

但如果 .XXX 中的 XXX 是一个有限集合。像上面的四季,就可以用枚举来减少冗余。

话不多说,来看代码

上面的例子如果在 enum 里就是这样写的:

enum Season { SPRING, SUMMER, AUTUMN, WINTER } 复制代码

类似的,定义星期:

enum WEEK { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } 复制代码

当然还有月份,感兴趣的同学可以自己写写。

怎么用枚举类型呢?

就用 Switch 就好了。这点我和高老师的想法是非常一致的。枚举本来就是为了简单而存在的。非要整枚举的高级方法,还不如新建一个类。

枚举类,虽然特殊了点,但也是一个类。既然是类,就得先声明,再调用。

在刚刚定义了两个 enum 类之后,我们在这个文件里的 main函数里,可以以「类名 对象名 = 类.某一个枚举类型」来初始化一个枚举对象。

public class TestEnum { public static void main(String[] args) { Season a = Season.AUTUMN; System.out.println("It is " a "."); WEEK today = WEEK.TUESDAY; System.out.println("Today is " today "."); } } 复制代码

要注意的事情: 枚举的顺序是按照在 enum 里写的顺序来的。 这点和 Python里的 enumerate 非常像。 Python 中对一个可以进行枚举的对象用 for 循环遍历键值对:

for k,v in enumerate("happy"): print(k,":",v) 复制代码

运行结果为:

java大数据的教程(Java里的枚举超级易懂版)(1)

可以看到,默认为每一个抛出来的值,匹配的键就是从 0 开始递增的。

枚举 Switch

来看看枚举大显身手的时刻:

Season a = Season.AUTUMN; System.out.println("It is " a "."); switch (a) { case SPRING: System.out.println("春天来了,又到了动物XX的季节"); break; case SUMMER: System.out.println("夏天来了,又到了游泳的季节"); break; case AUTUMN: System.out.println("秋天来了,又开学了"); break; case WINTER: System.out.println("冬天来了,又到了一天睡12个小时的季节"); break; } 复制代码

运行结果:

java大数据的教程(Java里的枚举超级易懂版)(2)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页