DBMNG数据库管理与应用

书籍是全世界的营养品。生活里没有书籍,就好像没有阳光;智慧里没有书籍,就好像鸟儿没有翅膀。
当前位置:首页 > MySQL > 常见问题

枚举的基础知识

12.1.1 枚举的基础知识

创建枚举需要使用关键字enum。例如,下面是一个简单的枚举,其中列出了各种苹果的品种:

 

标识符Jonathan、GoldenDel等被称为枚举常量。每个枚举常量被隐式声明为Apple的公有、静态final成员。此外,枚举常量的类型是声明它们的枚举的类型,对于这个例子为Apple。因此在Java语言中,这些常量被称为是“自类型化的”(self-typed),其中的“自”是指封装常量的枚举。

定义了枚举之后,可以创建枚举类型的变量。但是,尽管枚举定义了类类型,却不能使用new实例化枚举。反而,枚举变量的使用方式在许多方面与基本类型相同。例如,下面这行代码将ap声明为Apple枚举类型的变量:

  1. Apple ap; 
因为ap是Apple类型,所以只能被赋值为(或包含)在Apple枚举中定义的那些值。例如,下面这行代码将ap赋值为RedDel:
  1. ap = Apple.RedDel;  

注意在符号RedDel之前的Apple。

可以使用关系运算符“==”比较两个枚举常量的相等性。例如,下面这条语句比较ap的值和GoldenDel常量:

  1. if(ap == Apple.GoldenDel) // ... 
枚举值也可以用于控制switch语句。当然,所有case语句使用的常量的枚举类型,都必须与switch表达式使用的枚举类型相同。例如,下面这条switch语句是完全合法的:
 

注意在case语句中,枚举常量的名称没有使用枚举类型的名称进行限定。也就是说,使用的是Winesap而不是Apple.Winesap。这是因为switch表达式中的枚举类型已经隐式指定了case常量的枚举类型。所以在case语句中不需要使用枚举类型的名称对常量进行限定。实际上,如果试图这么做的话,会造成编译时错误。

当显示枚举常量时,例如在println()语句中,会输出枚举常量的名称。例如下面这条语句:

  1. System.out.println(Apple.Winesap); 

会显示名称“Winesap”。

下面的程序用到了刚才介绍的所有内容,并演示了Apple枚举:

 
 
该程序的输出如下所示:
 

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号