前言:枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。

当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。

1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。

2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。

3.Enum默认实现了java.lang.Comparable接口。

4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”.

5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。

6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。

7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。

一、技术总结

public class TestEnum {

/**

* 普通枚举

*/

public enum ColorEnum {

red, green, yellow, blue;

}

/**

* 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法

*/

public enum SeasonEnum {

//注:枚举写在最前面,否则编译出错

spring, summer, autumn, winter;

private final static String position = "test";

public static SeasonEnum getSeason() {

if ("test".equals(position))

return spring;

else

return winter;

}

}

/**

* 实现带有构造器的枚举

*/

public enum Gender{

//通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错

//赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错

MAN("MAN"), WOMEN("WOMEN");

private final String value;

//构造器默认也只能是private, 从而保证构造函数只能在内部使用

Gender(String value) {

this.value = value;

}

public String getValue() {

return value;

}

}

/**

* 订单状态

* 实现带有抽象方法的枚举

*/

public enum OrderState {

/** 已取消 */

CANCEL {public String getName(){return "已取消";}},

/** 待审核 */

WAITCONFIRM {public String getName(){return "待审核";}},

/** 等待付款 */

WAITPAYMENT {public String getName(){return "等待付款";}},

/** 正在配货 */

ADMEASUREPRODUCT {public String getName(){return "正在配货";}},

/** 等待发货 */

WAITDELIVER {public String getName(){return "等待发货";}},

/** 已发货 */

DELIVERED {public String getName(){return "已发货";}},

/** 已收货 */

RECEIVED {public String getName(){return "已收货";}};

public abstract String getName();

}

public static void main(String[] args) {

//枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值

ColorEnum colorEnum = ColorEnum.blue;

switch (colorEnum) {

case red:

System.out.println("color is red");

break;

case green:

System.out.println("color is green");

break;

case yellow:

System.out.println("color is yellow");

break;

case blue:

System.out.println("color is blue");

break;

}

//遍历枚举

System.out.println("遍历ColorEnum枚举中的值");

for(ColorEnum color : ColorEnum.values()){

System.out.println(color);

}

//获取枚举的个数

System.out.println("ColorEnum枚举中的值有"+ColorEnum.values().length+"个");

//获取枚举的索引位置,默认从0开始

System.out.println(ColorEnum.red.ordinal());//0

System.out.println(ColorEnum.green.ordinal());//1

System.out.println(ColorEnum.yellow.ordinal());//2

System.out.println(ColorEnum.blue.ordinal());//3

//枚举默认实现了java.lang.Comparable接口

System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1

//--------------------------

System.out.println("===========");

System.err.println("季节为" + SeasonEnum.getSeason());

//--------------

System.out.println("===========");

for(Gender gender : Gender.values()){

System.out.println(gender.value);

}

//--------------

System.out.println("===========");

for(OrderState order : OrderState.values()){

System.out.println(order.getName());

}

}

}

二、常用单词

decimal 小数的

enum 枚举

ordinal 顺序的、依次的

Order 订单

State 状态

三、个人见解

枚举就像是一个类有自己的枚举名称,还有自己的枚举属性、构造方法和变量,之前我一直认为枚举就是一种和数组类似的东西,直接创建枚举然后使用即可,不过现在,我觉得,这个新生的枚举真的很强大,他可以帮助我们创建一系列不希望客户改变的数据量,并提供处理他们的方法。枚举的出现大大简化了之前程序员希望对数据进行处理的代码,一些符合枚举情况的数据可以直接新建一个枚举类型,并给出属性、方法即可。枚举很强大,我会在这几天好好熟悉一下枚举,认识枚举。

java使用枚举做审核_JAVA—枚举相关推荐

  1. java 枚举使用例子_Java枚举详解及使用实例(涵盖了所有典型用法)

    在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数 ...

  2. java 枚举与泛型_Java枚举和泛型

    这件事让我困扰了一段时间.以前我曾问过 questions,可能是一个不好的措辞和一个太抽象的例子.所以不清楚我实际在问什么.我会再尝试.请不要跳过结论.我期待这个问题根本不容易回答! 为什么我不能在 ...

  3. java 枚举类型初始化_java 枚举类型分析

    最近做android开发,需要用到枚举值,这样可以连续赋值,我按之前c++那样书写,如下所示: public enumColorSelect { RED_BAGE= 0, GREEN_BAGE, BL ...

  4. java枚举工具类_Java 枚举

    引入编写季节类(Season),该类只有四个对象(spring,summer,autumn,winter) 概念枚举(enum)全称为 enumeration, 是 JDK 1.5 中引入的新特性. ...

  5. java枚举比较大小写_Java 枚举(enum)的学习

    Java 枚举(enum)的学习 枚举的定义 在定义枚举类型时我们使用的关键字是enum,与class关键字类似,只不过前者是定义枚举类型,后者是定义类类型.枚举类型Day中分别定义了从周一到周日的值 ...

  6. java 枚举定义变量_Java枚举(enum)

    Free Talk 上学期上Java课时都没有听说过枚举的概念,这次偶然在JavaGuide博客中看到了,就想写一些枚举相关知识.本篇文章会较为深入地讲解一下枚举的强大功能. 写这边博客的时候,又发现 ...

  7. java获取枚举的值_JAVA枚举Enum,通过枚举值获取枚举类型

    枚举类: import java.util.Optional; public enum PurchaseDemandEnum { YJJSL(1,"研究技术类"), XTGCL(2 ...

  8. java枚举的例子_Java枚举例子

    package one; /*作业要求:用枚举编写一个星期 枚举值:MON TUE WED THU FRI SAT SUN 该枚举要有一个方法返回中文的星期几.*/ public class work ...

  9. java 枚举报错_java 枚举

    枚举: 就是要让某个类型的变量的取值只能为若干个固定值的一个,否则,编译器就会报错.枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标. 用普通类实现枚举 ...

最新文章

  1. 使用第三方SDK(如微信、qq、快看、头条等),调用接口405 Method Not Allowed
  2. python基础期末考试_python基础试题(4)
  3. jsp怎么调用servlet_Servlet简述
  4. mac下flink集群安装
  5. easyui弹出窗关闭前调用确认窗口,先关闭页面后调用弹出窗口
  6. 读书笔记_打开量化投资的黑箱04
  7. Vue之webpack打包CSS图片字体
  8. java应用安全设计_应用层安全架构设计-访问控制
  9. java8新特性——如何使用lambda
  10. try固定搭配_regret cease try等词的固定搭配用法
  11. xul 和xml区别_使用Atom XML和Firefox XUL实施Web剪切和粘贴
  12. R 回归 虚拟变量na_互助问答第92期:虚拟变量问题
  13. 2021超级热门引流红包裂变微信分享朋友圈广告游戏源码
  14. win 10如何删除OEM分区
  15. 九阳神功足疗是什么?分析美团按摩项目,泡脚足浴排第一
  16. 全民分销时代,企业如何运营分销平台?
  17. GetDC()没有释放造成的后果
  18. 手机计算机桌面图标恢复,三种方法快速找回桌面图标(附电脑文件恢复教程)...
  19. ios view改变重叠层次关系
  20. 虎年啦,小老虎5分钟带你学会Linux中的移动-改名(mv)

热门文章

  1. python函数递归法求一个数各位数之和_python – 设计一个使用digit_sum计算数字总和的递归函数...
  2. 检查用户名是否存在的servlet代码怎么写_Servlet详解!!!
  3. 电脑fps低怎么办_电脑想要英雄联盟玩的流畅,主要看哪几个方面?
  4. python程序员怎么面试_Python程序员面试,这些问题你必须提前准备!
  5. Python编程从入门到实践~文件写入
  6. 8s nfs 挂载文件_Kubernetes集群使用网络存储NFS
  7. PineApple_Ninja.js
  8. 爬虫 404 try_Python爬虫MOOC笔记
  9. LwIP应用开发笔记之十一:LwIP带操作系统UDP服务器
  10. opencv感兴趣通道COI的使用