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;
    		}
    	}
    }



  • 相关阅读:
    Python基础篇(七)
    RMI基础
    Python基础篇(五)
    装饰模式
    一些linux知识和http知识
    mysql统计一个库里面的表的总数
    关于phpmailer邮件发送
    Jenkins是什么?
    Android开发——JVM、Dalvik以及ART的区别【转帖】
    好记性不如烂笔头--linux学习笔记9练手写个shell脚本
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6819828.html
Copyright © 2011-2022 走看看