java使用枚举做审核_JAVA—枚举
前言:枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了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—枚举相关推荐
- java 枚举使用例子_Java枚举详解及使用实例(涵盖了所有典型用法)
在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数 ...
- java 枚举与泛型_Java枚举和泛型
这件事让我困扰了一段时间.以前我曾问过 questions,可能是一个不好的措辞和一个太抽象的例子.所以不清楚我实际在问什么.我会再尝试.请不要跳过结论.我期待这个问题根本不容易回答! 为什么我不能在 ...
- java 枚举类型初始化_java 枚举类型分析
最近做android开发,需要用到枚举值,这样可以连续赋值,我按之前c++那样书写,如下所示: public enumColorSelect { RED_BAGE= 0, GREEN_BAGE, BL ...
- java枚举工具类_Java 枚举
引入编写季节类(Season),该类只有四个对象(spring,summer,autumn,winter) 概念枚举(enum)全称为 enumeration, 是 JDK 1.5 中引入的新特性. ...
- java枚举比较大小写_Java 枚举(enum)的学习
Java 枚举(enum)的学习 枚举的定义 在定义枚举类型时我们使用的关键字是enum,与class关键字类似,只不过前者是定义枚举类型,后者是定义类类型.枚举类型Day中分别定义了从周一到周日的值 ...
- java 枚举定义变量_Java枚举(enum)
Free Talk 上学期上Java课时都没有听说过枚举的概念,这次偶然在JavaGuide博客中看到了,就想写一些枚举相关知识.本篇文章会较为深入地讲解一下枚举的强大功能. 写这边博客的时候,又发现 ...
- java获取枚举的值_JAVA枚举Enum,通过枚举值获取枚举类型
枚举类: import java.util.Optional; public enum PurchaseDemandEnum { YJJSL(1,"研究技术类"), XTGCL(2 ...
- java枚举的例子_Java枚举例子
package one; /*作业要求:用枚举编写一个星期 枚举值:MON TUE WED THU FRI SAT SUN 该枚举要有一个方法返回中文的星期几.*/ public class work ...
- java 枚举报错_java 枚举
枚举: 就是要让某个类型的变量的取值只能为若干个固定值的一个,否则,编译器就会报错.枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标. 用普通类实现枚举 ...
最新文章
- 使用第三方SDK(如微信、qq、快看、头条等),调用接口405 Method Not Allowed
- python基础期末考试_python基础试题(4)
- jsp怎么调用servlet_Servlet简述
- mac下flink集群安装
- easyui弹出窗关闭前调用确认窗口,先关闭页面后调用弹出窗口
- 读书笔记_打开量化投资的黑箱04
- Vue之webpack打包CSS图片字体
- java应用安全设计_应用层安全架构设计-访问控制
- java8新特性——如何使用lambda
- try固定搭配_regret cease try等词的固定搭配用法
- xul 和xml区别_使用Atom XML和Firefox XUL实施Web剪切和粘贴
- R 回归 虚拟变量na_互助问答第92期:虚拟变量问题
- 2021超级热门引流红包裂变微信分享朋友圈广告游戏源码
- win 10如何删除OEM分区
- 九阳神功足疗是什么?分析美团按摩项目,泡脚足浴排第一
- 全民分销时代,企业如何运营分销平台?
- GetDC()没有释放造成的后果
- 手机计算机桌面图标恢复,三种方法快速找回桌面图标(附电脑文件恢复教程)...
- ios view改变重叠层次关系
- 虎年啦,小老虎5分钟带你学会Linux中的移动-改名(mv)
热门文章
- python函数递归法求一个数各位数之和_python – 设计一个使用digit_sum计算数字总和的递归函数...
- 检查用户名是否存在的servlet代码怎么写_Servlet详解!!!
- 电脑fps低怎么办_电脑想要英雄联盟玩的流畅,主要看哪几个方面?
- python程序员怎么面试_Python程序员面试,这些问题你必须提前准备!
- Python编程从入门到实践~文件写入
- 8s nfs 挂载文件_Kubernetes集群使用网络存储NFS
- PineApple_Ninja.js
- 爬虫 404 try_Python爬虫MOOC笔记
- LwIP应用开发笔记之十一:LwIP带操作系统UDP服务器
- opencv感兴趣通道COI的使用