zoukankan      html  css  js  c++  java
  • Java enum枚举的使用方法

    一. 出现背景:

    在JDK1.5之前,我们定义常量是这种:public static final String RED = “RED”;

    在JDK1.5中增加了枚举类型,我们能够把相关的常量分组到一个枚举类中:

    public enum Color {
    	RED, GREEN, BLUE;
    }

    使用的时候能够这样:Color c = Color.RED


    二. 枚举特点:

    1. 枚举enum是一个特殊的Java类。它继承自java.lang.Enum,继承了非常多Enum的方法。但枚举类是一个不能够被继承的final类

    2. 枚举类能够定义在interface或class中。当然枚举类型中有构造函数、方法、数据域:

    public interface MyConstants {
    	enum Color {
    		RED("RED", 1), GREEN("GREEN", 2), BLUE("BLUE", 3);
    
    		String desc;
    
    		Integer value;
    
    		private Color(String desc, Integer value) {
    			this.desc = desc;
    			this.value = value;
    		}
    	}
    
    	enum Light {
    		RED, GREEN, YELLOW;
    	}
    }

    使用:MyConstants.Color.RED


    3. 枚举类中的够早期和普通类的构造器有些不同:

    (a). 构造器仅仅是在构造枚举值的时候被调用

    (b). 构造器仅仅能私有,这样能够保证外部代码无法新构建枚举类的实例


    4. 全部枚举类继承了Enum的方法,以下是这些方法使用介绍:

    (a). ordinal()  返回枚举值在枚举种类的顺序,这个顺序依据枚举值声明的顺序

    (b). compareTo()  Enum实现了java.lang.Comparable接口。它返回的是两个枚举值的顺序之差,但这两个枚举值必须属于同一个枚举类

    (c). values   返回一个包括所有枚举值的数组

    (d). toString  返回枚举常量的名称

    (e). valueOf  类似toString

    (f). equals   比較两个枚举类对象的应用


    5. 在switch中使用:

    public enum Light{
    	RED, GREEN, YELLOW;
    }
    
    class Test {
    	public static void main(String[] args) {
    		Light light = Light.RED;
    		switch (light) {
    		case RED:
    			System.out.println("it's red");
    			break;
    		case GREEN:
    			System.out.println("it's green");
    			break;
    		case YELLOW:
    			System.out.println("it's yellow");
    			break;
    		}
    	}
    }



  • 相关阅读:
    关于标准库中的ptr_fun/binary_function/bind1st/bind2nd
    ptr_fun学习笔记
    stream_iterator、ostream_iterator 使用初探
    C++异常处理
    ext2文件系统
    C语言动态内存管理
    C++中为什么要用虚函数、指针或引用才能实现多态?
    hadoop本地库
    二分图最小点覆盖König定理的简单证明 (加入自己理解)
    Fence Repair POJ
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6819828.html
Copyright © 2011-2022 走看看