概念

  首先,枚举并不是一种新技术,而是一种基础数据类型.它隶属于两种基础类型中的值类型,如下:

2.  为什么要有枚举

  枚举在真正的开发中是非常常用的,它的作用很简单也很纯粹:它定义了一种规范,就是要让某个类型的变量的取值只能为若干个固定值中的一个,也就是要符合它定义的规范.它可以让编译器在编译时就可以识别程序中填写的非法值,一定程度上防止了运行时的非法类型值错误.

  例如:要定义星期几的变量,如果用普通变量1-7   分别表示星期一到星期日,但有人可能写成int weekday=0.这种错误只能到运行时才能发现,编译是没问题的。但如果用枚举代替普通变量,就可将错误在编译时识别。

  枚举本身当然是一个类,它的定义与使用与普通类很类似,而每个枚举变量都相当于类的一个对象。下面将分别介绍枚举的基本使用、带有构造方法的枚举、带有抽象方法的枚举。如下:

3.  基本使用

public class EnumTest2 {
public static void main(String[] args) {
WeekDay weekDay2 = WeekDay.FRI;
//使用1:toString()方法
System.out.println(weekDay2);//输出:FRI
//使用2:name()方法
System.out.println(weekDay2.name());//输出:FRI
//使用3:ordinal()方法
System.out.println(weekDay2.ordinal()); //输出:5
//使用4:枚举变量的反射
System.out.println(WeekDay.valueOf("SUN").toString());//输出:SUN
//使用5:获取枚举的长度
System.out.println(WeekDay.values().length);//输出:7
}
/**
* 定义枚举类--这里作为测试类的一个子类
*/
public enum WeekDay{
SUN,MON,TUE,WED,THI,FRI,SAT;
}
}

其它可参考:

http://blog.csdn.net/wang379275614/article/details/39652245#

最新文章

  1. Navisworks API 简单二次开发 (自定义工具条)
  2. 用chrome来映射查找样式对应的sass
  3. EasyUI Datagrid Datetime(EasyUI DataGrid 时间格式化)
  4. C# Lock 解读[转]
  5. spring junit
  6. EntityFramework.Extended
  7. 安装Android Studio报failed to find java version for 'C:\windows\system32\java.exe':[2] The system cannot find the specified file.错误的解决方案
  8. Flink Program Guide (6) -- 窗口 (DataStream API编程指导 -- For Java)
  9. Seoer,牵起用户与搜索引擎双手的魔术师
  10. UI篇—懒加载
  11. SPOJ - BITDIFF: Bit Difference [神妙の预处理]
  12. [原创]ssget过滤动态块的方式
  13. FxZ,C#开发职位面试测试题(30分钟内必须完成)
  14. ABAP on HANA之CDS Association和Path Expression
  15. DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.
  16. [Angular] Use Angular components in AngularJS applications with Angular Elements
  17. Java的线程同步
  18. php开启memcache扩展
  19. 配置TOMCAT 修改默认ROOT路径
  20. java 反射和泛型

热门文章

  1. rpmverify命令用来验证已安装的rpm软件包的正确性
  2. elasticsearch 索引延迟 一致性问题等
  3. .net core 调用数字证书 使用X509Certificate2
  4. javascript基础拾遗(七)
  5. 关于 android receiver
  6. Android Manifest <meta-data>
  7. django配置数据库
  8. Android开发(九)——ViewFlipper实现图片轮播
  9. 2. AutoEncoder在NLP中的应用
  10. webscan v0.01