`
xuehongliang
  • 浏览: 95150 次
  • 性别: Icon_minigender_1
  • 来自: 辽宁
社区版块
存档分类
最新评论

JDK5.0新特性的学习--枚举

    博客分类:
  • java
阅读更多

(1)简单的例子

  JDK5.0的枚举,正好可以解决上面我们讨论的问题,而且更简洁。还是用上面的代码做示例,只需要将Color类修改如下,Flower、Client都无法更改。

 
java 代码
  1. public enum Color {    RED, BLACK, YELLOW, BLUE, WHITE, ORANGE}  
接下来我们做更深一步的说明: 
  • 所有枚举类都是java.lang.Enum的子类(JDK内核自动将Color隐性继承自Enum)
  • RED...ORANGE都是Color的实例对象
 上面的Color枚举类,功能好象还和以前的例子不完全一样,我们再次修改如下。
java 代码
  1. public enum Color {       
  2.       RED(0), BLACK(1), YELLOW(2), BLUE(3), WHITE(4), ORANGE(5);          
  3.       int color;       
  4.       Color(int color){           
  5.           this.color=color;       
  6.       }           
  7.       public int getColorValue(){           
  8.            return color;       
  9.       }   
  10. }  
从这里我们可以看到枚举类是如何创建构造函数及方法的,有一些隐性的东西要说明一下: 
  • 枚举类的构造函数要求是private的,如果象例子里那样不加修饰符,则Java会自动给加上。但如果你想加上public则会报错。
  • RED(0), BLACK(1)...等枚举值必须定义在前面,而且最后一个枚举值ORANGE(5);未尾用分号结束。

(2)在循环中使用枚举类

  枚举类都有一个values方法可以得到它值的数组:Color[] colors=Color.values();而且枚举类都支持泛型

(以后的文章会重点说到),所以我们可以这样来遍历这个数组:

 

Color[] colors = Color.values();
    for (Color c : colors) {
       System.out.println("color value=" + c.getColorValue());
    }

(3)在switch(分支)中使用枚举

  如下代码示例,这里要注意将“case RED:”写成“case Color.RED:”是会报错的,因为JDK5.0可以自动根据

“switch (color)”就判断入你要使用什么枚举类型了。从这里也可以看出JDK5.0确实为用户做了帖心的考虑,尽量让程序员少写代码,写更简单的代码。

 

Color color = Color.RED;
        switch (color) {
        case RED:
            //process ...
            break;
        case BLACK:
            //process ...
            break;
        case WHITE:
            //process ...
            break;
        default:
            //process ...
        }

(4)JDK5.0新增的集合:EnumMap 和EnumSet

  给出两个例子,一切尽在不言中了。(说明:这两个例子用到了JDK5.0中泛型的知识)

 

  Map map = new EnumMap(Color.class);
        map.put(Color.RED, "红色");
        map.put(Color.BLACK, "黑色");
        map.put(Color.WHITE, "白色");
       
        for (Color c : Color.values()) {
            System.out.println(c + " chinese is: " + map.get(c));
        }

Set all = EnumSet.allOf(Color.class);
        EnumSet warmColors = EnumSet.of(Color.RED, Color.YELLOW);
        Set notWarmColors = EnumSet.complementOf(warmColors);
        Set notBlack = EnumSet.range(Color.RED, Color.YELLOW);

分享到:
评论

相关推荐

    JDK5.0_下载-安装-配置

    总结来说,JDK5.0是Java发展中的关键版本,引入了泛型、枚举、自动装箱/拆箱等新特性,极大地简化了编码。正确下载、安装并配置JDK5.0后,就可以开始愉快的Java编程之旅,而"HelloWorld"则是学习任何编程语言的第一...

    JDK5.0新特性 常量 、枚举、 for each、反射

    在Java开发领域,JDK 5.0是一个重要的里程碑,引入了多项显著的新特性,极大地提升了编程效率和代码质量。本文将深入探讨其中的四个关键特性:常量、枚举、for each循环(也称为增强型for循环)以及反射。 首先,让...

    JDK5.0新特性(3)——枚举

    在Java编程语言中,JDK 5.0的发布带来了一系列重要的新特性,极大地提升了开发效率和代码质量。其中,枚举(Enum)是引入的一个关键特性,它为表示固定集合中的常量提供了强大而安全的支持。这篇博客将深入探讨JDK ...

    JDK 5.0.zip

    安装这个版本的JDK后,开发者可以体验到上述的新特性,并在项目中使用它们来提升代码质量。需要注意的是,随着Java的不断更新,JDK 5.0已不再维护,对于新项目建议使用更高版本的JDK以获得最新的功能和安全修复。

    JDK5.0新特性 反射、枚举.rar

    `JDK5.0新特性(3)——枚举.doc`中应该会介绍如何声明枚举、枚举实例的创建、枚举的继承、枚举常量的方法以及枚举与switch语句的结合。枚举在设计模式、API设计以及表示固定集合的常量等方面都有重要作用。 再者,...

    JDK5.0 新特性

    在JDK 5.0中,Java引入了一系列重要的新特性,极大地提升了开发效率和代码的可读性。这些新特性包括自动包装和解包、增强的for循环、可变参数方法、printf风格的格式化输出、枚举类型以及静态导入等。 首先,自动...

    jdk5.0新特性实例讲解

    Java JDK 5.0,又称为JDK 1.5,是Java开发工具包的一个重要升级,它引入了大量的新特性和改进,极大地提升了Java编程的...而"jdk5.0新特征.txt"则可能包含了对所有新特性的详细描述和使用示例,是深入学习的好资源。

    jdk5.0新特性汇总(超级详细)

    ### JDK 5.0 新特性详解 #### 一、增强的 for 循环(ForEach Loop) JDK 5.0 引入了增强的 `for` 循环,也称为 foreach 循环,用于简化对集合和数组的操作。这种循环语法更加简洁,易于阅读。 **示例代码:** ``...

    JDK5.0新特性

    以上就是JDK 5.0中的一些重要新特性,这些特性极大地推动了Java语言的发展,使其在软件开发领域保持了强大的竞争力。通过学习和掌握这些特性,开发者可以编写出更加高效、健壮和易于维护的代码。

    良葛格JDK5.0学习笔记

    通过深入学习《良葛格JDK5.0学习笔记》,开发者能够全面了解并熟练运用这些新特性,提升代码质量和效率,更好地适应Java编程的新时代。这份笔记对于Java初学者和有一定经验的开发者来说都是一份宝贵的参考资料。

    良葛格Java JDK 5.0学习笔记

    Java JDK 5.0是Java发展历程中的一个重要里程碑,它引入了许多新特性,极大地提升了开发效率和代码质量。这里,我们将详细探讨这个版本的关键知识点,帮助初学者更好地理解和掌握Java编程。 1. **自动类型推断(var...

    jdk5.0新特性ppt

    之前的枚举类型存在安全隐患,但JDK 5.0引入的枚举类型提供了类型安全的枚举,使得枚举常量成为独立的类实例,可以拥有方法和字段,同时避免了传统常量类的潜在问题。 5. **静态导入(Static import)**: 静态...

    良葛格Java JDK 5.0学习笔记[可打印]

    Java JDK 5.0是Java开发的一个里程碑版本,它引入了许多重要的新特性和改进,极大地提升了开发效率和代码质量。良葛格的Java JDK 5.0学习笔记是一份宝贵的资源,适合初学者和有经验的开发者回顾这个版本的关键概念。...

    JDK5.0新特性源代码

    在这个名为“JDK5.0新特性源代码”的压缩包中,我们可以期待找到与这些关键特性相关的源代码示例。以下是JDK 5.0引入的一些核心新特性及其详细解释: 1. **泛型(Generics)**:泛型允许在类、接口和方法中声明类型...

    JDK5.0的11个主要新特征

    JDK5.0是Java开发的一个重要里程碑,它引入了11个主要的新特性,极大地提升了编程效率和代码安全性。以下是对这些特性的详细说明: 1. 泛型(Generic) 泛型的引入是为了解决类型安全问题,避免在运行时进行不必要...

    (Java 2 SDK)JDK 5.0 的源代码

    以上就是JDK 5.0中的一些关键特性,这些源代码的分析有助于深入理解Java平台的工作原理,对于学习和优化Java代码具有重要的价值。通过阅读和研究这些源文件,开发者可以更好地掌握Java编程的精髓,提升自己的编程...

    良葛格Java JDK 5.0学习笔记ch05

    Java JDK 5.0是Java发展历程中的一个重要里程碑,它引入了许多新特性,极大地提升了开发效率和代码质量。在这个"良葛格Java JDK 5.0学习笔记ch05"中,我们将深入探讨其中的关键知识点。 一、泛型 Java 5.0引入了...

    jdk 5.0 ban

    Java Development Kit..."rumenjingdianjdk"这个文件可能是某个教程或示例代码,用于帮助学习和理解JDK 5.0中的新特性和用法。对于初学者来说,通过实践这些示例,可以更好地掌握JDK 5.0的更新内容,提升编程技能。

    Java JDK 5.0学习笔记

    Java JDK 5.0是Java发展历程中的一个重要里程碑,它的发布带来了许多创新特性和改进,极大地提升了开发效率和代码质量。本学习笔记旨在帮助新手全面理解并掌握Java 5.0的关键知识点。 一、泛型(Generics) Java ...

    java jdk 5.0学习

    Java JDK 5.0是Java开发工具包的一个重要版本...通过深入学习,不仅可以理解JDK 5.0的新特性,还能为后续的J2EE开发打下坚实基础。对于初学者来说,这是一份极好的入门资源,能够帮助他们快速掌握Java编程的关键技能。

Global site tag (gtag.js) - Google Analytics