java 中的Enum

转载 2007年09月29日 13:01:00

Enum是enumeration(列举)的简写形式,包含在java.lang包中.熟悉C, C++, C#, 或 Pascal人应该对列举有所了解,先看个例子:

 public enum Season ...{ winter, spring, summer, fall }


一个enum是定义一组值的对象,它可以包括零个或多个值成员.它是属于enum类型的,一个enum对象中不可有两个或多个相同的属性或值.在次之前的java程序员一般是 用接口的方法实现列举的,如 :

 

public interface Season ...{
    
static winter = 0;
    
static spring = 1//etc..
    }

引入了enum的java的列举的编写方便了许多,只须定义一个enum型的对象.enum对象的值都回自动获得一个数字值,从0开始,依次递增.看一个比较简单的enum实现的例子:EnumDemo.java

    /**//*
    We can loop over the values we put into the enum
    using the values() method.
    Note that the enum Seasons is compiled into a
    separate unit, called EnumDemo$Seasons.class
    
*/

    
public class EnumDemo ...{
    
/**//*declare the enum and add values to it. note that, like in C#, we don't use a ; to
    end this statement and we use commas to separate the values 
*/

    
private enum Seasons ...{ winter, spring,
    summer, fall }

    
//list the values
    public static void main(String[] args) ...{
    
for (Seasons s : Seasons.values())...{
    System.out.println(s);
    }

    }

    }

运行上述代码你回得到 以下结果:

    winter
    spring
    summer
    fall
    Enum的属性调用:

    下面的代码展示了调用enum对象的方法,这也是它通常的用法:

package net.javagarage.enums;
    
/**//*
    File: EnumSwitch.java
    Purpose: show how to switch against the values in an enum.
    
*/

    
public class EnumSwitch ...{
    
private enum Color ...{ red, blue, green }
    
//list the values
    public static void main(String[] args) ...{
    
//refer to the qualified value
    doIt(Color.red);
    }

    
/**//*note that you switch against the UNQUALIFIED name. that is, "case Color.red:" is a
    compiler error 
*/

    
private static void doIt(Color c)...{
    
switch (c) ...{
    
case red:

    System.out.println(
"value is " + Color.red);
    
break;
    
case green:

    System.out.println(
"value is " + Color.green);
    
break;
    
case blue:

    System.out.println(
"value is : " + Color.blue);
    
break;
    
default :

    System.out.println(
"default");
    }

    }

    }


 

Java 中Enum 的扩展

Java 原生的Enum没有办法与C中的Enum一样随意指定成员的值,在一些C语言直接与Java 通信的场景中会比较麻烦,所以我对Java 原有的Enum进行扩展来达到随意指定成员值的目的:   pu...
  • chenjianjk
  • chenjianjk
  • 2013年07月30日 21:09
  • 1182

JAVA中enum使用方法

注意查看结果,STATUSCODE尤为重要 package com.enumtest; public enum RESULTMAP { SUCCESS(200,"返回正确结果"),INPUT_...
  • KinseyGeek
  • KinseyGeek
  • 2017年02月15日 08:47
  • 782

Java enum的用法详解

用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。publi...
  • ly_sl
  • ly_sl
  • 2016年07月28日 15:24
  • 2216

Java 语言中 Enum 类型的使用介绍

Enum 类型的介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年08月15日 21:40
  • 1255

java enum的用法详解

Java Enum原理  public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE }; 实际上,这个声明定义的类型是一个类,它刚好有四个实例,在此...
  • liaoqianwen123
  • liaoqianwen123
  • 2014年04月12日 23:25
  • 17324

java Enum的使用方法

一;关于Java Enum Enum一般用来表示一组相同的常量。如性别、日期、月份、星期、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较的时候可以用”==”来替换equals....
  • liaoqianwen123
  • liaoqianwen123
  • 2013年09月18日 22:08
  • 1534

java enum实现的单例

为了防止通过反序列化得到多个对象,EJ提倡使用enum实现单例: 关于枚举的对象为什么可以反序列化:可以看Enum类的如下方法: Java代码 /** * prevent de...
  • lllliulin
  • lllliulin
  • 2015年11月05日 11:24
  • 931

JAVA中 enum 类型的定义和使用

Java 开发中经常使用到一些有限的常量,这些可以在Bean内部定义成一个 enum 类型,这样在维护时比较方便可控,那这里就简单记录一下 enum 的定义和用法,方便日后直接参考使用,懒人计划,呵呵...
  • shenzhenNBA
  • shenzhenNBA
  • 2017年02月12日 15:56
  • 2424

Java中enum的用法总结

在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数...
  • xiaoliucool1314
  • xiaoliucool1314
  • 2016年03月25日 17:06
  • 3027

Java 枚举(enum) 详解7种常见的用法

JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。大师兄我又加上自己的理解,来帮助各位理解一下带参数的枚举。 用法一:常量 在JDK1.5 之前,...
  • qq_27093465
  • qq_27093465
  • 2016年08月11日 11:14
  • 102229
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 中的Enum
举报原因:
原因补充:

(最多只允许输入30个字)