- 浏览: 197648 次
- 性别:
- 来自: 上海
文章分类
最新评论
1. 关于 Java Enum:
学过 C/C++ 等语言的人,应该都对 Enum 类型略知一二。 Enum 一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。 对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用 ”==” 来替换 equals , 是一种好的习惯。 JDK1.5 之前没有 Enum 这个类型,那时候一般用接口常量来替代。有了 JavaEnum 之后, 可以更贴近的表示这种常量。
2. 如何使用 Java Enum
简单的用法: JavaEnum 简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值。如:
性别:
颜色:
枚举对象里面的值都必须是唯一的。可以通过 Enum 类型名直接引用该常量,如 SexEnum.male,Color.RED.
复杂用法: Java 为枚举类型提供了一些内置的方法,同时枚举常量还可以有自己的方法。可以很方便的遍历枚举对象,看个下面的例子:
1. 代码一
2.代码二
3.Java Enum 原理
Java Enum类型的语法结构尽管和 java 类的语法不一样,应该说差别比较大。但是经过编译器编译之后产生的是一个class文件。
该class文件经过反编译可以看到实际上是生成了一个类,该类继承了java.lang.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 : /** * @author yubing.linyb * 2009.7.29 * 定义一个枚举类型,代表星期一到星期日的7个缩写常量 * 同时还定义了枚举类型的属性day,该属性可以是final,也可是变量 * 同时还定义了该枚举类型的一个方法printDay */ public enum WeekDay { Mon("Monday"), Tue("Tuesday"), Wed("Wednesday"), Thu("Thursday"), Fri("Friday"), Sat("Saturday"), Sun("Sunday"); /**定义枚举类型自己的属性**/ private final String day; private WeekDay(String day) { this.day = day; } /**定义枚举类型自己的方法**/ public static void printDay(int i){ switch(i){ case 1: System.out.println(WeekDay.Mon); break; case 2: System.out.println(WeekDay.Tue);break; case 3: System.out.println(WeekDay.Wed);break; case 4: System.out.println(WeekDay.Thu);break; case 5: System.out.println(WeekDay.Fri);break; case 6: System.out.println(WeekDay.Sat);break; case 7: System.out.println(WeekDay.Sun);break; default:System.out.println("wrong number!"); } } public String getDay() { return day; } }
2.代码二
WeekDayTest.java: /** * @author yubing.linyb * 2009.7.29 * 测试枚举类型WeekDay. */ public class WeekDayTest { public static void main(String args[]) { for (WeekDay day : WeekDay.values()) { System.out.println(day + "====>" + day.getDay()); } WeekDay.printDay(5); } } 输出结果为: 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.
WeekDay (javap WeekDay 命令之后得到的内容如下 ( 去掉了汇编代码 ) : public final class WeekDay extends java.lang.Enum{ public static final WeekDay Mon; public static final WeekDay Tue; public static final WeekDay Wed; public static final WeekDay Thu; public static final WeekDay Fri; public static final WeekDay Sat; public static final WeekDay Sun; static {}; public static void printDay(int); public java.lang.String getDay(); public static WeekDay[] values(); public static WeekDay valueOf(java.lang.String); }
发表评论
-
Java 5 并发学习(转)
2012-06-26 14:38 859Java 5 并发学习 在Java5之后,并发线程这块发生 ... -
WeakHashMap和HashMap的区别
2012-02-24 13:42 843http://mzlly999.iteye.com/blog/ ... -
volatile 的高级模式
2012-02-22 13:07 731前面几节介绍的模式涵盖了大部分的基本用例,在这些模式中使用 v ... -
The "Double-Checked Locking is Broken" Declaration
2012-02-22 10:34 959http://www.cs.umd.edu/~pugh/jav ... -
Log4j配置文件详细说明[转]
2012-02-14 10:48 1344属性文件Properties properties属性文件 ... -
Log4j的配置文件
2012-02-14 10:42 812Log4j支持两种配置文件格式,一种是java属性文件(键—值 ... -
单例模式的俩种方式
2012-01-04 14:09 922等等 单例模式的俩种方式: 饿汉式 class Singlet ... -
Mysql连接数据库:PreparedStatement.addBatch()方法
2011-12-23 08:43 58171.Eclipse连接MySQL数据库 mysql>C ... -
java中ArrayList 、LinkList区别
2011-12-21 15:30 1169java中ArrayList 、LinkList、List区别 ... -
Thread的实现
2011-12-21 14:25 1202Making a Thread A thread in Jav ... -
Date4j,一个简约的日期处理类库
2011-12-14 10:13 834Java本身的日期类在JDK1.0版本之后就再也没有更新过,同 ... -
How to use Log4j
2011-09-29 13:57 8081. LogManager.getInstance().get ... -
重写hashCode和equals方法(转)
2011-09-27 09:58 1131如果你的对象想散列存 ... -
PO BO VO DTO POJO DAO概念及其作用(转)
2011-09-20 09:49 663J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨 ... -
Thread的实现
2011-09-20 09:47 857Thread的实现 1.extend Thread,then ... -
Adapter模式(转)
2011-08-17 15:48 884[b]GOF《设计模式》一书对Adapter模式是这样描述的: ... -
JVM常见配置汇总
2011-08-15 14:56 1903从这个图中可以看到, ... -
Abstract or Interface
2011-08-11 15:02 726详解java中的抽象类和接 ... -
HashMap HashTable TreeMap
2011-08-11 13:45 963Map中我们通过对象来对对象进行索引,用来索引的对象叫做key ... -
多线程死锁问题(转)
2011-08-10 19:42 583前天俺们谈到了加锁,但是在使用加锁的同时又会带来一个问题,就是 ...
相关推荐
解压后,你可以查看源代码了解其具体实现方式,学习如何在自己的项目中应用和扩展这个库。通常,`tests`目录下的单元测试能帮助理解枚举类的用法和预期行为。 总之,`laravel-enum`是一个强大的工具,它将枚举概念...
在这个"TestEnum.zip_DEMO_enum学习"中,我们可以深入探讨C#中的枚举用法和相关知识点。 首先,枚举在C#中是用`enum`关键字定义的。它允许我们为整型值创建一个可读性更强的命名空间。例如: ```csharp enum Color...
在"EnumConvertDemo.zip"的示例代码中,你将找到这些转换方法的实现,这对于新手学习如何在实际项目中使用枚举转换非常有用。通过实践这些示例,你可以更好地理解C#中的枚举操作,提高编程能力。
以下是对`javaenum学习.pdf`中提到的Java枚举相关知识点的详细说明: 1. **枚举元素定义**: - 枚举元素的列表必须写在枚举类的开头,元素之间用逗号分隔。如果元素列表后面没有其他内容,可以不加分号;如果有...
通过本文的学习,我们了解了Java中枚举类型的基本概念、特点以及如何使用。枚举类型不仅提供了更清晰的代码可读性和可维护性,还确保了类型的安全性。在实际开发中,合理利用枚举类型能够有效提升代码质量和程序的...
实现一个DNS域名解析服务器,通常是为了学习、测试或创建自定义的DNS解决方案。一个简单的DNS服务器可能包括解析查询、缓存响应和转发请求等功能。通过这样的实现,用户可以更好地理解DNS工作原理,并可能定制自己...
C++枚举类型enum与enum class的使用 以下是C++枚举类型enum与enum class...C++枚举类型enum与enum class的使用是非常重要的知识点,它们之间的区别和使用方法都需要我们认真学习和掌握,以便更好地应用于实际开发中。
本资源包提供了一些关于`Enum`枚举的深入学习材料,包括实例、常见问题以及相关的文档,非常适合Java开发者进行高级编程的学习和复习。 首先,枚举的基本语法是定义一个公共类,前面加上关键字`enum`。例如: ```...
《PyPI上的Python库"aenum"详解》 在Python编程中,PyPI(Python Package Index)是官方的软件仓库,提供了海量的第三方模块...无论你是Python的新手还是经验丰富的开发者,"aenum"都是值得尝试和学习的一个优秀工具。
通过深入学习这份案例,开发者可以提升在枚举使用上的技巧,增强代码的可维护性和规范性,同时也能更好地理解和运用C++的面向对象特性。在阅读和实践案例时,建议结合具体代码分析枚举的用法,理解7enum的设计思想,...
### Java中的Enum枚举用法详解 #### 一、引言 在Java编程语言中,枚举(Enum)是一种特殊的数据类型,它被用来表示一组固定的常量集合。相比于使用常量接口或字符串来表示固定集合,枚举提供了更加安全且易于管理的...
本实践项目是基于VS2005进行的,它提供了关于如何使用Struct和Enums的实例,帮助学习者加深理解。 **结构(Struct)** 结构是一种值类型,它的数据存储在栈中,这意味着它不具有引用类型的特性,如引用传递和默认的...
switch语句是JAVA中的一个选择结构,类型可以是int, short, byte, char, enum这五个类型,enum必须是JDK5.0。 JAVA学习笔记涵盖了JAVA的基础知识和面向对象编程思想,帮助学习者更好地理解和使用JAVA语言。
本文所介绍的进阶实例,主要涵盖了在使用GSON库时如何处理一些复杂情况,例如注册TypeAdapter以及处理枚举类型Enum的问题。TypeAdapter是GSON中的一个高级特性,允许用户自定义对象和JSON数据之间的转换过程,而枚举...
在Java编程中,枚举类型(Enum)是一种强大的工具,用于定义一组预定义的常量。...通过学习和理解这些示例,你可以更好地理解和应用这种自定义枚举处理策略,使得Gson在处理枚举时更加灵活和适应性强。
9. 枚举类型(enum): 枚举允许我们创建一组命名的整型常量,方便代码的可读性。 10. 数组和结构体: 数组是一系列相同类型元素的集合,而结构体则可以封装多种不同类型的成员,实现数据的复合。 总的来说,...
在C++编程语言中,类型转换是至关重要的概念,它允许程序员在不同数据类型之间进行操作。本资源“vc.zip”包含了一份关于C++类型...通过学习这份资料,开发者能更好地理解和应用C++的类型转换机制,从而提升编程能力。
4. 为了提高代码的可读性和可扩展性,可以使用枚举(Enum)来定义不同的单位类型,如`BYTE`, `KB`, `MB`, `GB`等。 5. 类还可以包含一个`convert`方法,接受原始容量、单位类型和目标单位类型作为参数,自动完成...
【一周学会C#——java程序员转.NET必看】 C#是一种由微软开发的面向对象的编程语言,设计用于.NET Framework上。...通过这个一周学习计划,你将能够快速过渡,并有效地利用C#的强大功能进行.NET开发。
**FSM自动机详解:实现状态转换** 有限状态机(Finite State Machine,FSM)是计算机科学中的一个重要概念,广泛应用于计算机科学、电子工程、...通过深入学习FSM,我们可以更好地设计和实现具有清晰行为模式的系统。