Java 枚举(enum) 常见用法

JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。

用法一:常量.

在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

public enum Color {
     RED, GREEN, BLANK, YELLOW
}

简单使用public class B {

    public static void main(String[] args) {

        System.out.println( isRed( Color.BLANK ) ) ;  //结果: false

        System.out.println( isRed( Color.RED ) ) ;    //结果: true

    }

    static boolean isRed( Color color ){

        if ( Color.RED.equals( color )) {

            return true ;

        }

        return false ;

    }

  }

或者 switch 的使用

  Signal color = Signal.RED;

  public void change() {

switch (color) {

      case RED:

color = Signal.GREEN;

       break;

      case YELLOW:

color = Signal.RED;

       break;

      case GREEN:

color = Signal.YELLOW;

       break;

}

}

用法二:覆盖枚举的方法

下面给出一个toString()方法覆盖的例子。

enum Color{
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
    // 成员变量
    private String name;
    private int index;

    // 构造方法
    private Color(String name, int index) {
        this.name = name;
        this.index = index;
    }
    //覆盖方法
    @Override
    public String toString() {
        return this.index+"_"+this.name;
    }
}用法Color.RED.toString(); //打印1_红色

同样的,也可以是一个参数 enum ExecStatus {

WAIT(‘0‘), PROGRESS(‘1‘), SUCCESS(‘2‘), ERROR(‘3‘);
    private char state;

    private ExecStatus(char state) {
      this.state = state;
    }

    public char getValue() {
      return state;
    }

    @Override
    public String toString() {
      return String.valueOf(state);
    }
 }

用法ExecStatus.WAIT.getValue() //打印0

原文地址:https://www.cnblogs.com/gaomanito/p/8472356.html

时间: 2024-10-11 15:31:02

Java 枚举(enum) 常见用法的相关文章

【转】Java 枚举7常见种用法

原文网址:http://softbeta.iteye.com/blog/1185573 Java 枚举7常见种用法 博客分类: java java枚举enmu 原创地址:http://blog.lichengwu.cn/java/2011/09/26/the-usage-of-enum-in-java/ JDK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fi

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

用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强. Java代码 enum Signal { GREEN, YE

Java 枚举7常见种用法

用法一:常量 在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强. Java代码 enum Signal { GREEN, YELL

Java枚举7常见种用法

DK1.5引入了新的类型——枚举.在Java中它虽然算个“小”功能,却给我的开发带来了“大”方便. 方法/步骤 用法一:常量 在JDK1.5之前,我们定义常量都是:publicstaticfianl.....现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类

C++和Java中枚举enum的用法

在C++和java中都有枚举enum这个关键字,但是它们之间又不太一样.对于C++来说,枚举是一系列命名了的整型常量,而且从枚举值转化为对应的整型值是在内部进行的.而对于Java来说,枚举更像一个类的命名的实例,你可以自定义枚举的成员,枚举值转化为对应的整型值是再外部进行的.下面以我之前的一篇博客8.1 Implement Blackjack 实现21点纸牌来说明,里面有一个扑克牌花色的枚举类: // C++ defination enum Suit {Club, Diamond, Heart,

Java枚举一些常用用法(enum)

1.在没有枚举之前,使用类来定义私有属性那些不被改变的固有的值,如周一到周日,而且每次声明都是public static fianl... 2.有了枚举后便可以把相关的变量放在一起,省了每次都用public static fianl...声明. 一.枚举的常用方法 方法 说明 int compareTo(E o)  比较此枚举与指定对象的顺序 Class<E> getDeclaringClass() 返回与此枚举常量的枚举类型相对应的 Class 对象 String name() 返回枚举常量

Java枚举类型的用法

JDK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. 1.用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法.而且枚举类型可以帮助我们检测许多的编译失误. 例如: package enumTest; public enum Color { RED,BLANK,YELLOW } 测试代码: package

Java——枚举enum

枚举我认为:枚举简单的说也可以一种数据类型,只不过是这种数据类型只包含我们自定义的数据,它是一组有共同特性的数据的集合.举个简单例子,颜色也可以定义成枚举类型,它可以包含你自定义的任何颜色,当需要的时候,只需要通过枚举调用即可,另外比如季节(春夏秋冬).星期(星期一到星期日).衣服的号码(S.M.L.XL)等等这些具有共同特性的数据都可以定义枚举.下面是个例子: public class EnumTest { public static void main(String[] args) { Sc

Java反射的常见用法

反射的常见用法有三类,第一类是“查看”,比如输入某个类的属性方法等信息,第二类是“装载“,比如装载指定的类到内存里,第三类是“调用”,比如通过传入参数,调用指定的方法. 1 查看属性的修饰符.类型和名字 通过反射机制,我们能从.class文件里看到指定类的属性,比如属性的修饰符,属性和类型和属性的变量名.通过下面的ReflectionReadVar.java,我们看演示下具体的做法. 1 import java.lang.reflect.Field; 2 import java.lang.ref