`
lovesailing
  • 浏览: 37771 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

Java Enum 学习

    博客分类:
  • java
阅读更多

网上查到一位大哥写的,挺好的,转过来分享~~~

Java Enum  学习

***Enum 在定义构造方法时,要定有有参数的构造方法前,必须定义无参数的,否则报错

 

1.           关于   Java Enum:

学过   C/C++   等语言的人,应该都对   Enum   类型略知一二。   Enum   一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用   ”==”   来替换   equals   。是一种好的习惯。   JDK1.5   之前没有   Enum   这个类型,那时候一般用接口常量来替代。有了   JavaEnum   之后,可以更贴近的表示这种常量。

2.           如何使用   Java Enum

简单的用法:   JavaEnum   简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值。如:

 

性别:

public   enum   SexEnum   {

   male   ,  female   ;

}

颜色:

public   enum   Color {

   RED   ,  BLUE,GREEN,BLACK   ;

}

 

枚举对象里面的值都必须是唯一的。

可以通过   Enum   类型名直接引用该常量,如   SexEnum.male,Color.RED.

复杂用法:   Java   为枚举类型提供了一些内置的方法,同事枚举常量还可以有自己的方法。可以很方便的遍历枚举对象,看个下面的例子:

 

1.           代码一   WeekDay.java   :

 

  1.   /**  
  2.  * @author yubing.linyb  
  3.  * 2009.7.29  
  4.  * 定义一个枚举类型,代表星期一到星期日的7个缩写常量  
  5.  * 同时还定义了枚举类型的属性day,该属性可以是final,也可是变量  
  6.  * 同时还定义了该枚举类型的一个方法printDay  
  7.  */   
  8. public   enum  WeekDay {  
  9. Mon("Monday" ), Tue( "Tuesday" ), Wed( "Wednesday" ), Thu( "Thursday" ), Fri(  
  10.         "Friday" ), Sat( "Saturday" ), Sun( "Sunday" );  
  11.   
  12. /**定义枚举类型自己的属性**/   
  13. private   final  String day;  
  14.    
  15. private  WeekDay(String day) {  
  16.      this .day = day;  
  17. }  
  18.   
  19. /**定义枚举类型自己的方法**/   
  20. public   static   void  printDay( int  i){  
  21.      switch (i){  
  22.      case   1 : System.out.println(WeekDay.Mon);  break ;  
  23.      case   2 : System.out.println(WeekDay.Tue); break ;  
  24.      case   3 : System.out.println(WeekDay.Wed); break ;  
  25.      case   4 : System.out.println(WeekDay.Thu); break ;  
  26.      case   5 : System.out.println(WeekDay.Fri); break ;  
  27.      case   6 : System.out.println(WeekDay.Sat); break ;  
  28.      case   7 : System.out.println(WeekDay.Sun); break ;  
  29.      default :System.out.println( "wrong number!" );  
  30.      }  
  31. }  
  32.    
  33. public  String getDay() {  
  34.      return  day;  
  35. }  
  36. }  

 

2.           代码二   WeekDayTest.java:

 

  1. /**  
  2.  * @author yubing.linyb  
  3.  * 2009.7.29  
  4.  * 测试枚举类型WeekDay.  
  5.  */   
  6. public   class  WeekDayTest {  
  7.   public   static   void  main(String args[]) {  
  8.       for  (WeekDay day : WeekDay.values()) {  
  9.          System.out.println(day + "====>"  + day.getDay());  
  10.       }  
  11.       WeekDay.printDay(5 );  
  12.   }  
  13. }  

 

输出结果为:

           Mon====>Monday

Tue====>Tuesday

Wed====>Wednesday

Thu====>Thursday

Fri====>Friday

Sat====>Saturday

Sun====>Sunday

Fri

3.           Java Enum   原理

Java Enum   类型的语法结构尽管和   java   类的语法不一样,应该说差别比较大。但是经过编译器编译之后产生的是一个   class   文件。该   class   文件经过反编译可以看到实际上是生成了一个类,该类继承了   java.lang.Enum<E>.

WeekDay   (javap WeekDay   命令   之后得到的内容如下   (   去掉了汇编代码   )  

  1. public   final   class  WeekDay  extends  java.lang.Enum{  
  2.     public   static   final  WeekDay Mon;  
  3.     public   static   final  WeekDay Tue;  
  4.     public   static   final  WeekDay Wed;  
  5.     public   static   final  WeekDay Thu;  
  6.     public  
分享到:
评论

相关推荐

    javaenum学习.pdf

    以下是对`javaenum学习.pdf`中提到的Java枚举相关知识点的详细说明: 1. **枚举元素定义**: - 枚举元素的列表必须写在枚举类的开头,元素之间用逗号分隔。如果元素列表后面没有其他内容,可以不加分号;如果有...

    java enum 枚举 学习资料

    "Java Enum 枚举学习资料" Java Enum 枚举学习资料是 Java 编程语言中的一种特殊类型,它主要用来实现一组固定的常量。 Enum 枚举类型是 Java 5 中引入的一种新特性,旨在解决传统的 int 枚举常量的缺陷。 1. 枚举...

    Java enum的用法详解

    在Java编程语言中,`enum`(枚举)是一种特殊的类,用于定义一组固定的常量。...在阅读《https://bijian1013.iteye.com/blog/2309669》这篇博客时,你可以深入学习更多关于Java `enum`的高级用法和技巧。

    java enum枚举教程学习资料

    Java枚举(enum)是Java语言提供的一种特殊的数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中是类的子类型,因此,它们具备类的一些特性,比如可以有方法、变量以及实现接口。...

    Java中的Enum的使用与分析

    通过本文的学习,我们了解了Java中枚举类型的基本概念、特点以及如何使用。枚举类型不仅提供了更清晰的代码可读性和可维护性,还确保了类型的安全性。在实际开发中,合理利用枚举类型能够有效提升代码质量和程序的...

    java Enum EnumMap 简单例子

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

    JAVA高级编程中Enum枚举

    本资源包提供了一些关于`Enum`枚举的深入学习材料,包括实例、常见问题以及相关的文档,非常适合Java开发者进行高级编程的学习和复习。 首先,枚举的基本语法是定义一个公共类,前面加上关键字`enum`。例如: ```...

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

    Java 枚举(enum)是 Java 语言中的一个重要特性,自 Java 5 开始引入。枚举用于定义一组相关的常量,这些常量通常代表一个有限的、预定义的值集合。枚举类是一种特殊的类,它具有以下特点: 1. **枚举类的声明**:...

    JAVA个人学习笔记

    switch语句是JAVA中的一个选择结构,类型可以是int, short, byte, char, enum这五个类型,enum必须是JDK5.0。 JAVA学习笔记涵盖了JAVA的基础知识和面向对象编程思想,帮助学习者更好地理解和使用JAVA语言。

    Java中的Enum枚举用法.doc

    ### Java中的Enum枚举用法详解 #### 一、引言 在Java编程语言中,枚举(Enum)是一种特殊的数据类型,它被用来表示一组固定的常量集合。相比于使用常量接口或字符串来表示固定集合,枚举提供了更加安全且易于管理的...

    java学习基础_必须要了解的知识点

    15. **枚举(Enum)**:Java 5.0引入的枚举类型,用于定义一组固定的常量。 16. **包装类**:Java为每种基本数据类型提供了对应的包装类,如Integer、Double等,它们提供了许多有用的方法。 17. **JDBC**:Java ...

    Java JDK 5.0学习笔记

    本学习笔记旨在帮助新手全面理解并掌握Java 5.0的关键知识点。 一、泛型(Generics) Java 5.0引入了泛型,它允许在定义类、接口和方法时指定类型参数,从而实现类型安全的集合。泛型消除了强制类型转换的需要,...

    Java 实例 - enum 和 switch 语句使用源代码-详细教程.zip

    在Java编程语言中,`enum`(枚举)和`switch`语句是两个非常重要的概念,它们在软件开发中有着...通过学习和实践这些源代码,你可以提升你的Java编程技能,尤其在处理多分支逻辑时,能够写出更加清晰、易维护的代码。

    java学习资料.zip

    "java学习资料.zip"包含了两本经典书籍的中文版本:《Effective Java》的第一版和第二版,这些都是Java开发者深入理解语言特性和最佳实践的重要资源。 《Effective Java》是由Joshua Bloch编写的,他是一位经验丰富...

    java 枚举学习心得

    总的来说,学习Java枚举不仅能够帮助我们编写更清晰、更安全的代码,还能提高程序设计的效率。通过深入理解枚举的特性和用法,可以更好地应对各种编程场景,尤其是在处理固定值集合或需要类型安全的场合。在Java EE...

    Java 实例 - Enum(枚举)构造函数及方法的使用源代码-详细教程.zip

    在Java编程语言中,枚举(Enum...学习并熟练使用枚举是提升Java编程能力的关键步骤。通过下载提供的"Java 实例 - Enum(枚举)构造函数及方法的使用源代码-详细教程.zip"资源,你可以进一步实践和掌握枚举的相关知识。

    java枚举实例代码

    Java枚举(enum)是Java语言中的一种特殊数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中被引入,目的是为了更好地管理和使用常量,提高代码的可读性和安全性。在本实例代码中,...

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

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

    javaenum源码-chapter_19_enum_think_in_java:chapter_19_enum_think_in_javac

    Java枚举(Enum)是Java语言中的一个特殊类,它在`java.lang`包下,是面向对象编程中的一种常量表示方式。本章节将深入探讨Java枚举的源码和《Thinking in Java》第十九章中关于枚举的内容。 在Java中,枚举是一种...

Global site tag (gtag.js) - Google Analytics