`

关于JAVA中enum枚举类型的思考

    博客分类:
  • Java
阅读更多

package utils;

 

/**

 * @author zhangjiawei

 * 

 */

public class EnumExample {

 

/* enum */

public enum Week {

/* Week 的成员 */

Sunday(7), Monday(1);

/* 下面是对不同的成员,分配不同的值(实现类似于.net中的Sunday=7,Monday=1这种对枚举成员赋值的功能),而不是默认的系统分配的方式(0,1,2,3,4....) */

private int value;

 

/* 构造方法 */

Week(int value) {

this.value = value;

}

 

/* 获取值的方法 */

public int getValue() {

return value;

}

 

/*

* 总结说明一下: NET 和 Java 枚举的实现原理不太一样

* 在Java中的enum与.NET中的enum是不一样的。既然用了enum,为什么还要要用数字来判断呢?完全是多此一举!!!(完全没有必要像上面这写)

* 总结一句话:不要为了用enum而用enum,既然你要判断是int,那就用int,没必要非用enum不可!!!

*/

}

 

/**

* 测试 EnumExample

* @param args

*/

public static void main(String[] args) {

 

Week day = Week.Sunday;

switch (day) {

case Sunday:

System.out.println(day);

break;

case Monday:

System.out.println(day);

break;

default:

System.out.println("none match");

break;

}

//查看枚举元素的值

System.out.println(Week.Sunday); //输出Sunday 而不是7 。。很郁闷搞不懂 

System.out.println(Week.valueOf("Sunday"));//该方法反回的是一个Week,即枚举类型,所以输出的与上面一样,还是Sunday。

System.out.println(Week.Sunday.value);//输出7,正确,也可以用Week.Sunday.getValue();

//原来原因是这样的:如果类型是枚举类型(Week)那么输出的肯定是枚举的名字,而不是值,要输出值的话,必须用 枚举成员.value或者是 枚举成员.getValue() 来获取。例如

//Week.Sunday.value 或者 Week.Sunday.getValue()来获取 !!!

}

}


分享到:
评论

相关推荐

    Enum的用法

    `Enum`,作为Java语言中的一个关键字,自JDK 5.0引入以来,便赋予了开发者一种全新的数据类型——枚举类型,其设计初衷在于为编程提供更安全、更简洁的方式来处理固定集合的常量。不同于传统意义上的类,`Enum`拥有...

    Thinking.In.Java.3rd.Edition.Chinese.eBook.pdf

    在第三版中,Eckel对Java SE 5.0(也称为Java 5)的新特性进行了详细介绍,比如枚举类型(enum)、自动装箱/拆箱、可变参数(varargs)、泛型(generics)以及枚举接口等。这些特性显著提高了代码的可读性和安全性,...

    Thinking in Java中文版(3和4)

    9. **枚举(Enum)**:Java 5引入的新特性,允许创建自己的枚举类型,常用于定义固定数量的常量。 10. **注解(Annotation)**:Java 5引入,提供了一种元数据,可以用于代码的编译、部署和运行时的处理,如Junit...

    java五子棋 人机对战 源码及素材

    这些状态可能通过枚举类型(enum)来管理。 三、人工智能 1. AI算法:描述中提到作者对五子棋技术有限,所以AI算法可能相对简单,例如采用深度优先搜索(DFS)、最小最大搜索(Minimax)或Alpha-Beta剪枝等基础策略...

    think in java的习题

    此外,书中的习题涵盖了输入/输出(I/O)系统,网络编程,反射(Reflection)以及枚举(Enum)等高级主题,这些都是Java程序员需要掌握的重要技能。 最后,书中还有关于泛型容器、比较器(Comparator)和函数式编程...

    Java程序设计入门教程

    18. **枚举(Enum)**:学习Java中的枚举类型,它是常量的集合,可以增强代码的安全性和可读性。 19. **泛型**:泛型提供了一种在编译时检查类型安全的方式,同时提高了代码的重用性。 20. **反射(Reflection)**...

    java重要基础知识点总结.pdf

    - 枚举(Enum)是一种特殊的类,提供了枚举类型的声明和使用。 9. **泛型(Generics)**: - 泛型允许在类、接口和方法中定义类型参数,提高了代码的类型安全性和可重用性。 10. **注解(Annotation)**: - ...

    thinking java 3 ch (1-11).pdf

    11. **枚举(Enum)**:Java的枚举类型,它比传统的常量更强大,支持方法和继承。枚举在表示固定数量的值或状态时非常方便。 以上内容仅是《Thinking in Java》第三版前11章的概览,实际书籍中会深入探讨每个主题,...

    JAVA练习题压缩文件

    15. **枚举(Enum)**:掌握枚举类型,理解其特性,如常量的定义、枚举类的方法等。 通过这些练习题,你可以检验自己对Java基础知识的掌握程度,逐步提升编程技能。在解决每道题目时,不仅要关注代码的正确性,还要...

    阿里Java开发手册正式版PDF

    手册中关于编程规范的规定,体现了阿里巴巴对Java开发的严谨态度。这些规范和标准不仅有助于提升代码质量,还能促进团队协作效率,降低新成员的学习成本。此外,该手册的公开,也说明了阿里巴巴愿意分享其在大规模...

    实验项目D、Java应用专题编程

    在Java中,枚举类型可以通过`enum`关键字来定义。 - 枚举类型的实例是有限的并且在编译期间就已经确定,这有助于减少运行时错误,提高代码可读性和可维护性。 - 枚举提供了很多有用的默认行为,比如toString()、...

    1java初学者学习源代码.zip

    15. **枚举(Enum)**:理解枚举类型,它是Java中一种特殊的类,常用于定义一组固定的值。 在学习这些知识点时,结合实际的源代码示例进行练习是至关重要的。通过不断地实践和调试,可以加深对Java语言的理解,并...

    java 编程思想

    同时,枚举类型(enum)在Java中扮演着重要角色,它既是一种数据类型,又可以拥有方法和常量,为代码提供了一种安全的常量表示方式。 再者,Java的泛型是提高代码复用性和类型安全性的工具。泛型允许我们在定义类、...

    Thinking in Java 第3版+第4版(中文版+习题答案)

    在"标签"中,“Thinking in”暗示了这本书的独特教学方式,即通过思考和理解的方式来学习Java,这与传统的语法罗列式教程不同,更强调理解和应用。 文件名中: 1. "Thinking in Java 3th Edition习题及答案.chm" - ...

    thinkinjava源码-ThinkingInJava:在Java中思考第4源代码

    10. **枚举(Enum)**:Java中的枚举类型,提供了更安全的常量表示方式,可以包含方法和实现接口。 11. **接口(Interface)**:作为多继承的替代方案,定义了一组抽象方法,强制实现者遵守特定的契约。 12. **...

    thinkinkinjava-master:在 Java 演示中思考

    11. **枚举(Enum)**:Java枚举类型为常量集合提供了安全且类型安全的表示。书中会展示如何定义和使用枚举,以及枚举的关联方法。 12. **Lambda表达式**:Java 8引入的Lambda表达式简化了函数式编程,使得编写简洁...

    dl_java_源码.zip

    5. **枚举(Enum)**:用于定义固定的常量集合,有时用作数据类型。 6. **注释(Comment)**:帮助理解代码的功能和用途。良好的注释是代码可读性的关键。 7. **测试类(Test Classes)**:通常使用JUnit或其他...

    java-tic-tac-toe

    为了方便操作,可以使用枚举类型(enum)来表示格子状态。棋盘类应包含方法来检查是否已有玩家连成一线,以及放置标记的方法,同时确保每次放置都是合法的(即格子为空且游戏未结束)。 2. **玩家类(Player)**: ...

Global site tag (gtag.js) - Google Analytics