DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。

用法一:常量

在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

  1. public enum Color {
  2. RED, GREEN, BLANK, YELLOW
  3. }

用法二:switch

JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

  1. enum Signal {
  2. GREEN, YELLOW, RED
  3. }
  4. public class TrafficLight {
  5. Signal color = Signal.RED;
  6. public void change() {
  7. switch (color) {
  8. case RED:
  9. color = Signal.GREEN;
  10. break;
  11. case YELLOW:
  12. color = Signal.RED;
  13. break;
  14. case GREEN:
  15. color = Signal.YELLOW;
  16. break;
  17. }
  18. }
  19. }

用法三:向枚举中添加新方法

如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。

  1. public enum Color {
  2. RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
  3. // 成员变量
  4. private String name;
  5. private int index;
  6. // 构造方法
  7. private Color(String name, int index) {
  8. this.name = name;
  9. this.index = index;
  10. }
  11. // 普通方法
  12. public static String getName(int index) {
  13. for (Color c : Color.values()) {
  14. if (c.getIndex() == index) {
  15. return c.name;
  16. }
  17. }
  18. return null;
  19. }
  20. // get set 方法
  21. public String getName() {
  22. return name;
  23. }
  24. public void setName(String name) {
  25. this.name = name;
  26. }
  27. public int getIndex() {
  28. return index;
  29. }
  30. public void setIndex(int index) {
  31. this.index = index;
  32. }
  33. }

用法四:覆盖枚举的方法

下面给出一个toString()方法覆盖的例子。

  1. public enum Color {
  2. RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
  3. // 成员变量
  4. private String name;
  5. private int index;
  6. // 构造方法
  7. private Color(String name, int index) {
  8. this.name = name;
  9. this.index = index;
  10. }
  11. //覆盖方法
  12. @Override
  13. public String toString() {
  14. return this.index+"_"+this.name;
  15. }
  16. }

最新文章

  1. 生产/消费 发送和接收消息---基于kombu和redis交互
  2. TestNG Study Note 1 - Eclipse 插件安装
  3. HDU1502/Luogu1352/UVa1220 party[树形DP]
  4. 一个js验证类
  5. php操作数据库找不到列
  6. BAT批处理(二)
  7. "HTTP 错误 500.19 请求的页面的相关配置数据无效" 解决办法
  8. Lucene子项目------------------Solr遇到的问题
  9. 用PHP Session和Javascript实现文件上传进度条,处理进度条
  10. mysql数据库 触发器简单实例
  11. 玩转 SSH(七):使用 dubbo + zookeeper 实现服务模块化
  12. git fsck -- 一致性检查
  13. Python Skelve 库
  14. Orchard克死你 之 刚起步
  15. kafka安装与测试
  16. 【做题】uoj#370滑稽树上滑稽果——巧妙dp
  17. 【flex】学习笔记/总结
  18. 利用Junit实现eclipse单元测试
  19. 【应用】R--判断类别型属性之间是否有相关性(相互之间是否独立)
  20. lkl风控.随机森林模型测试代码spark1.6

热门文章

  1. 数组中去除重复的对象的简单方法and&&的使用
  2. linux基础part3
  3. Django中的Cookie和Session操作以及CBV
  4. 关于python2中的unicode和str以及python3中的str和bytes
  5. LeetCode:加油站【134】
  6. HTML 获取屏幕,浏览器,页面的高度
  7. ubuntu14.04 安装pip vitualenv flask
  8. 第一天 格式化操作符 条件、for、while、break、continue语句
  9. android电池(四):电池 电量计(MAX17040)驱动分析篇【转】
  10. 囤题&&发布记录