`
yangsq
  • 浏览: 181044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java enum 学习

阅读更多
在像C这样强调数据结构的语言里,枚举是必不可少的一种数据类型。然而在java的早期版本中,是没有一种叫做enum的独立数据结构的。所以在以前的java版本中,我们经常使用interface来simulate一个enum。
java 代码
  1. public interface Color {   
  2.     static int RED  = 1;   
  3.     static int GREEN    = 2;   
  4.     static int BLUE = 3;   
  5. }  

虽然这种simulation比较麻烦,但在以前也还应付的过去。可是随着java语言的发展,越来越多的呼声要求把enum这种数据结构独立出来,加入到java中。所以从java 1.5以后,就有了enum,这也是这篇blog要学习的topic。

学习的最好方式就是例子,先来一个:

java 代码
  1. public class EnumDemo {   
  2.     private enum Color {red, blue, green}//there is not a ";"   
  3.        
  4.     public static void main(String[] args) {   
  5.         for(Color s : Color.values()) {   
  6.             //enum的values()返回一个数组,这里就是Seasons[]   
  7.             System.out.println(s);   
  8.         }   
  9.     }   
  10. }  
console results
  1. red   
  2. blue   
  3. green  

注意事项已经在code中注释出,还要说明一点的是,这个java文件编译完成后不只有一个EnumDemo.class,还会有一个EnumDemo$Seasons.class,奇怪吧!

Another e.g.

java 代码
  1. public class EnumDemo {   
  2.     private enum Color {red, blue, green}//there is not a ";"   
  3.        
  4.     public static void main(String[] args) {   
  5.         Color s = Color.blue;   
  6.            
  7.         switch (s) {   
  8.         case red://notice: Seasons.red will lead to compile error   
  9.             System.out.println("red case");   
  10.             break;   
  11.         case blue:   
  12.             System.out.println("blue case");   
  13.             break;   
  14.         case green:   
  15.             System.out.println("green case");   
  16.             break;   
  17.         default:   
  18.             break;   
  19.         }   
  20.     }   
  21. }  

这个例子要说明的就是case的情况。

就这么多吗,当然不是,我们的enum结构还可以定义自己的方法和属性。

java 代码
  1. public class EnumDemo {   
  2.     private enum Color {   
  3.         red, blue, green;//there is a ";"   
  4.            
  5.         //notic: enum's method should be "static"   
  6.         public static Color getColor(String s){   
  7.             if(s.equals("red flag")){   
  8.                 return red;   
  9.             } else if(s.equals("blue flag")){   
  10.                 return blue;   
  11.             } else {   
  12.                 return green;   
  13.             }   
  14.         }   
  15.     }//there is not ";"   
  16.        
  17.     public static void main(String[] args) {   
  18.         EnumDemo demo = new EnumDemo();   
  19.         System.out.println(demo.getFlagColor("red flag"));   
  20.     }   
  21.        
  22.     public Color getFlagColor(String string){   
  23.         return Color.getColor(string);   
  24.     }   
  25. }  

Ok,so much for enum. Isn't it simple?

分享到:
评论
2 楼 bjsnail 2010-09-16  
我草,我就烦这说话中西合璧的,装蛋
1 楼 ct455332 2010-07-03  
tks a lot!

相关推荐

    javaenum学习.pdf

    javaenum学习.pdf

    java enum 枚举 学习资料

    java enum详细教程。由浅入深,包括基本语法方面..很适合新手学习。/n各位看官。绝对超值。

    java enum枚举教程学习资料

    java enum枚举教程学习资料

    Java Enum和String及int的相互转化示例

    主要介绍了Java Enum和String及int的相互转化示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    java Enum EnumMap 简单例子

    简单查询算法,供学习参考。 代码中描述了Enum和EnumMap类的使用。

    java 枚举(enum) 详解(学习资料)

    java 枚举(enum) 详解(学习资料); java 枚举(enum) 详解(学习资料); java 枚举(enum) 详解(学习资料); java 枚举(enum) 详解(学习资料);

    java下的enum介绍

    对java下enum的最详细介绍想详细了解enum内在的同学可以下载学习一下

    Java中的Enum的使用与分析

    Java中的Enum的使用与分析,希望对大家的学习有帮助

    Java的枚举enum示例详解

    主要给大家介绍了关于Java的枚举enum的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    浅谈Java中是否直接可以使用enum进行传输

    主要介绍了浅谈Java中是否直接可以使用enum进行传输,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    java中enum的用法

    主要介绍了java中enum的用法,包括了枚举类型的基本定义及用法分析,对于学习Java有着一定的学习与借鉴价值,需要的朋友可以参考下

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《java jdk 7学习笔记》是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习java时遇到的概念、操作、应用或认证考试等问题及解决方案。  《java jdk 7学习笔记》针对java se 7新功能全面改版,无论是...

    观看韩顺平学习整理java的笔记到异常

    帮助大家复习java基础知识其中有 hashCode 2 toString 2 finalize 2 用已学知识做出简单的房屋出租系统 3 类方法使用注意事项和细节讨论 4 main()方法 4 代码块 4 代码块使用注意事项和细节 5 单例模式 6 final...

    Java基础知识点总结.docx

    Java学习更是如此,知识点总结目录如下: 目录 一、 Java概述 3 二、 Java语法基础 5 数据类型 5 运算符号 14 语句 15 函数 15 方法重载(Overloadjing)与重写(Overriding) 16 数组 17 总结 18 三、 常见关键字 ...

    Java中枚举类型的一种使用方式

    主要介绍了Java中枚举类型的一种使用方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java开发详解.zip

    000000_【课程介绍 —— 写在前面的话】_Java学习概述笔记.pdf 010101_【第1章:JAVA概述及开发环境搭建】_JAVA发展概述笔记.pdf 010102_【第1章:JAVA概述及开发环境搭建】_Java开发环境搭建笔记.pdf 010201_【第2...

    Java中的“枚举类型

    我想几乎每一个学习Java语言的人在学习枚举的时候首先的一个疑问就是“为什么不用static final字段替代?”,有这个疑问就说明你已经摸索到了枚举类型的最主要功能......

    一文搞懂JAVA 枚举(enum)

    主要介绍了JAVA 枚举(enum)的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

    java 学习笔记 JAVA入门 整理

    //swtich 中可用的数据类型主要是 byte short int char enum //swtich 中的控制表达式的返回值应与 case 后的变量类型相一致 //关于数据类型 : 低精度与高精度运算会转换为高精度 // 整理的不多 只是为了加点分

    我平时在网上看见的重要的java知识

    20非常有用的java程序片,dom4j生产xml,java enum,for循环,java向oracle 插入百万数据,程序员必知8大排序,map的三种遍历....就是我自己平时在学习的时候遇到的问题然后在网上的找到相关解决方法。

Global site tag (gtag.js) - Google Analytics