当前位置: 首页 > 编程笔记 >

Java中枚举的使用详解

颛孙晗昱
2023-03-14
本文向大家介绍Java中枚举的使用详解,包括了Java中枚举的使用详解的使用技巧和注意事项,需要的朋友参考一下

枚举简介: 

为什么要用枚举:

    枚举是Java1.5出来之后新增的类型,它可以用来定义一组取值范围固定的的变量。

    在枚举没有出来之前,要定义这样的变量,往往是通过定义一个接口,将不同的变量

    使用不同的整数赋值。但是这样的却有着很明显的缺点:

        1.不能保证其定义数值的合法性;

在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。

例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。

在java中如何更好的使用这些“数据集”呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法。

package com.ljq.test;
/**
* 枚举用法详解
* 
* @author jiqinlin
* 
*/
public class TestEnum {
/**
* 普通枚举
* 
* @author jiqinlin
*
*/
public enum ColorEnum {
red, green, yellow, blue;
}
/**
* 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法
* 
* @author jiqinlin
*
*/
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;
}
}
/**
* 性别
* 
* 实现带有构造器的枚举
* 
* @author jiqinlin
*
*/
public enum Gender{
//通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错
//赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错
MAN("MAN"), WOMEN("WOMEN");
private final String value;
//构造器默认也只能是private, 从而保证构造函数只能在内部使用
Gender(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
/**
* 订单状态
* 
* 实现带有抽象方法的枚举
* 
* @author jiqinlin
*
*/
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());
}
}
}
 类似资料:
  • 本文向大家介绍Java枚举与.net枚举区别详解,包括了Java枚举与.net枚举区别详解的使用技巧和注意事项,需要的朋友参考一下 通过一段时间的项目实践,发现java中的枚举与.net中的枚举有很大的差别,初期造成了我对java中的枚举一些错误理解及部分有缺陷的应用,其实追其原因还是因为我会习惯性的认为java的枚举在作用以及定义上与.net应该是差不多的,毕竟两者都是高级语言,语言上也有很多相

  • 本文向大家介绍Java(enum)枚举用法详解,包括了Java(enum)枚举用法详解的使用技巧和注意事项,需要的朋友参考一下 概念 enum的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下: 如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 Color 枚举类型举例,它的枚举常量依次为RED:0

  • 本文向大家介绍Java的枚举类型使用方法详解,包括了Java的枚举类型使用方法详解的使用技巧和注意事项,需要的朋友参考一下 1.背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量。之前我们通常利用public final static 方法定义的代码如下,分别用1 表示春天,2表示夏天,3表示秋天,4表示冬天。 这种方法称作int枚举模式。可这种模式有什么

  • 本文向大家介绍详解Java中的 枚举与泛型,包括了详解Java中的 枚举与泛型的使用技巧和注意事项,需要的朋友参考一下 详解Java中的 枚举与泛型 一:首先从枚举开始说起 枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义:    显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类。 而这些类都是类库中En

  • 本文向大家介绍Mybatis-Plus通用枚举的使用详解,包括了Mybatis-Plus通用枚举的使用详解的使用技巧和注意事项,需要的朋友参考一下 解决了繁琐的配置,让 mybatis 优雅的使用枚举属性! 修改表结构 定义枚举 配置 修改实体 测试 插入 SQL 查询 SQL 从测试可以看出,可以很方便的使用枚举了。 条件查询 SQL 到此这篇关于Mybatis-Plus通用枚举的使用详解的文章

  • 本文向大家介绍详解java枚举用法及实例,包括了详解java枚举用法及实例的使用技巧和注意事项,需要的朋友参考一下 一、枚举类型作为常量 其实在更近一步的话我们可以输出每个枚举实例的具体位置 二、与swith结合使用 从上面的例子可以看出枚举的多态性,其实可以讲Color作为枚举的超类,其中的实例在运行时表现出多态。(如上面的输出结果为红色,下面的例子来验证这一特性。) 三、多态性(在Color中