详解java枚举用法及实例

 更新时间:2017年04月13日 15:17:36   作者:一休哥  
这篇文章主要介绍了Java枚举详解及使用实例,本文直接给出实例代码,需要的朋友可以参考下

一、枚举类型作为常量

package myenum; 
/** 
 * @author zzl 
 * 简单的枚举作为常量 
 */ 
public enum Color { 
  GREEN,RED,YELLOW; 
  public static void main(String[] args) { 
    for (Color c : values()) { 
      System.out.println("color:"+c); 
    } 
  } 
} 
//输出 
/** 
color:GREEN 
color:RED 
color:YELLOW 
*/ 

其实在更近一步的话我们可以输出每个枚举实例的具体位置

package myenum; 
/** 
 * @author zzl 
 * 简单的枚举作为常量 
 */ 
public enum Color { 
  GREEN,RED,YELLOW; 
  public static void main(String[] args) { 
    for (Color c : values()) { 
      System.out.println(c + " position "+c.ordinal()); 
    } 
  } 
} 
//输出结果 
/** 
GREEN position 0 
RED position 1 
YELLOW position 2 
*/  

二、与swith结合使用

public enum Color { 
  GREEN,RED,YELLOW; 
  public static void main(String[] args) { 
    Color c = RED; 
    switch (c) { 
    case RED: 
      System.out.println("红色"); 
      break; 
    case GREEN: 
      System.out.println("绿色"); 
      break; 
    case YELLOW: 
      System.out.println("黄色"); 
      break; 
    default: 
      break; 
    } 
  } 
} 
//输出 
/** 
红色 
*/ 

从上面的例子可以看出枚举的多态性,其实可以讲Color作为枚举的超类,其中的实例在运行时表现出多态。(如上面的输出结果为红色,下面的例子来验证这一特性。)

三、多态性(在Color中添加抽象方法)

public enum Color { 
  GREEN{ 
    void description(){ 
      System.out.println("绿灯行!"); 
    } 
  },RED{ 
    void description(){ 
      System.out.println("红灯停!"); 
    } 
  },YELLOW{ 
    void description(){ 
      System.out.println("黄灯亮了等一等!"); 
    } 
  };//如果枚举中有方法则左后一个实例以“;”结束 
  abstract void description(); 
  public static void main(String[] args) { 
    for (Color c : values()) { 
      c.description(); 
    } 
  } 
 
} 
<pre name="code" class="java">//输出 
/** 
绿灯行! 
红灯停! 
黄灯亮了等一等! 
*/ 

四、利用构造器为实例添加描述

public enum ColoStructure { 
  GREEN("绿色"),RED("红色"),YELLOW("黄色");//如果枚举中有方法则左后一个实例以“;”结束 
  public String description; 
  private ColoStructure(String des){ 
    this.description = des; 
  } 
  public static void main(String[] args) { 
    for (ColoStructure c : values()) { 
      System.out.println(c.description); 
    } 
  } 
} 
<pre name="code" class="java"><pre name="code" class="java">//输出 
/** 
绿色 
红色 
黄色 
*/ 

希望本文可以帮到有需要的朋友

相关文章

  • Idea运行单个main方法,不编译整个工程的问题

    Idea运行单个main方法,不编译整个工程的问题

    这篇文章主要介绍了Idea运行单个main方法,不编译整个工程的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • mybatis根据表逆向自动化生成代码的实现

    mybatis根据表逆向自动化生成代码的实现

    若采用mybatis框架,数据库新建表,手动编写的话,需要编写大量的实体类、mapper文件、mapper.xml文件,都是一些重复且有规律的工作。我们可以引用插件,然后做配置,自动生成这些文件,本文就来详细的介绍一下
    2021-08-08
  • java 算法二分查找和折半查找

    java 算法二分查找和折半查找

    这篇文章主要介绍了java 算法二分查找与折半查找的相关资料,需要的朋友可以参考下
    2017-05-05
  • 分析Java中为什么String不可变

    分析Java中为什么String不可变

    Java中为什么String是不可变性的。今天我们从多角度解析为什么Java把String做成不可变的。
    2021-06-06
  • java.io.EOFException产生原因及解决方法(附代码)

    java.io.EOFException产生原因及解决方法(附代码)

    java.io.EOFException表示在读取数据时突然遇到了文件或流的末尾,也就是说客户端或服务器已经关闭了连接,但是你还在尝试读取数据,这篇文章主要给大家介绍了关于java.io.EOFException产生原因及解决的相关资料,需要的朋友可以参考下
    2023-09-09
  • Servlet文件的上传与下载详解

    Servlet文件的上传与下载详解

    很多朋友不清楚在Servlet中怎么上传下载文件,谈到这个问题,首先需要我们掌握开发servlet的步骤,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2022-06-06
  • Java生成pdf文件或jpg图片的案例讲解

    Java生成pdf文件或jpg图片的案例讲解

    这篇文章主要介绍了Java生成pdf文件或jpg图片的案例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Java 实现完整功能的学生管理系统实例

    Java 实现完整功能的学生管理系统实例

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java实现一个完整版学生管理系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • 在Java和PostgreSQL枚举之间转换的通用方法

    在Java和PostgreSQL枚举之间转换的通用方法

    枚举类型(enum)是一种方便的数据类型,允许我们指定一个常量列表,对象字段或数据库列可以设置为该列表中的值,在本文中,我将回顾处理Java和PostgreSQL枚举转换的通用方法,需要的朋友可以参考下
    2023-10-10
  • Java使用线程池批量处理数据操作具体流程

    Java使用线程池批量处理数据操作具体流程

    这篇文章主要给大家介绍了关于Java使用线程池批量处理数据操作的相关资料,Java多线程编程中线程池是一个非常重要的概念,线程池可以提高线程的复用率和任务调度的效率,尤其是当需要查询大批量数据时,需要的朋友可以参考下
    2023-06-06

最新评论