枚举类会隐式的继承Enum类,无法再继承其它类(单继承机制

一、无实参枚举类型:

1、定义:

/**
* 1、无实参枚举类型
*/
public enum NoParamTypeEnums {
SPRING,
SUMMER,
AUTUMN,
WINTER; NoParamTypeEnums() {
}
}

2、使用:

    public static void noParamTypeDemo() {
String season = "SPRING";
System.out.println("无实参枚举查询常量对象名结果:" + NoParamTypeEnums.SPRING.name()); //toPrint->无实参枚举查询常量对象名结果:SPRING
if (season.equals(NoParamTypeEnums.SPRING.toString())) {
System.out.println(season); //toPrint->SPRING
}
}

二、单实参枚举类型:

1、定义:

/**
* 2、单实参枚举类型
*/
public enum OnlyParamTypeEnums {
SPRING("春"),
SUMMER("夏"),
AUTUMN("秋"),
WINTER("冬"); String key; OnlyParamTypeEnums(String key) {
this.key = key;
} //获取枚举的key:春、夏、秋、冬
public String getKey() {
return key;
} //输入枚举的key(春、夏、秋、冬),获取对应的常量对象名(SPRING、SUMMER、AUTUMN、WINTER)
public static String getKeyObjectName(String key) {
String keyName = null;
for (int i = 0; i < OnlyParamTypeEnums.values().length; i++) {
if (key.equals(OnlyParamTypeEnums.values()[i].getKey())) {
keyName = OnlyParamTypeEnums.values()[i].name();
break;
}
}
return keyName;
}
}

2、使用:

    public static void onlyParamTypeDemo() {
String season = "春";
System.out.println("单实参枚举查询key结果:" + OnlyParamTypeEnums.SPRING.getKey()); //toPrint->单实参枚举查询key结果:春
System.out.println("单实参枚举查询常量对象名结果:" + OnlyParamTypeEnums.SPRING.name()); //toPrint->单实参枚举查询常量对象名结果:SPRING
System.out.println("单实参枚举根据key查询常量对象名结果:" + OnlyParamTypeEnums.getKeyObjectName(season)); //toPrint->单实参枚举根据key查询常量对象名结果:SPRING
if (season.equals(OnlyParamTypeEnums.SPRING.getKey())) {
System.out.println(season); //toPrint->春
}
}

三、双实参枚举类型:

1、定义:

/**
* 3、双实参枚举类型
*/
public enum DoubleParamTypeEnums {
SPRING("0", "春"),
SUMMER("1", "夏"),
AUTUMN("2", "秋"),
WINTER("3", "冬"); String key;
String value; DoubleParamTypeEnums(String key, String value) {
this.key = key;
this.value = value;
} //获取枚举的key:0、1、2、3
public String getKey() {
return key;
} //输入枚举的value(春、夏、秋、冬),获取枚举的key:0、1、2、3
public static String getKey(String value) {
String keyName = null;
for (int i = 0; i < DoubleParamTypeEnums.values().length; i++) {
if (value.equals(DoubleParamTypeEnums.values()[i].getValue())) {
keyName = DoubleParamTypeEnums.values()[i].getKey();
break;
}
}
return keyName;
} //输入枚举的key(0、1、2、3),获取对应的常量对象名(SPRING、SUMMER、AUTUMN、WINTER)
public static String getKeyObjectName(String key) {
String keyName = null;
for (int i = 0; i < DoubleParamTypeEnums.values().length; i++) {
if (key.equals(DoubleParamTypeEnums.values()[i].getKey())) {
keyName = DoubleParamTypeEnums.values()[i].name();
break;
}
}
return keyName;
} //获取枚举的value:春、夏、秋、冬
public String getValue() {
return value;
} //输入枚举的key(0、1、2、3),获取枚举的value:春、夏、秋、冬
public static String getValue(String key) {
String valueName = null;
for (int i = 0; i < DoubleParamTypeEnums.values().length; i++) {
if (key.equals(DoubleParamTypeEnums.values()[i].getKey())) {
valueName = DoubleParamTypeEnums.values()[i].getValue();
break;
}
}
return valueName;
} //输入枚举的key(春、夏、秋、冬),获取对应的常量对象名(SPRING、SUMMER、AUTUMN、WINTER)
public static String getValueObjectName(String value) {
String keyName = null;
for (int i = 0; i < DoubleParamTypeEnums.values().length; i++) {
if (value.equals(DoubleParamTypeEnums.values()[i].getValue())) {
keyName = DoubleParamTypeEnums.values()[i].name();
break;
}
}
return keyName;
} //获取双实参枚举Map集合
public static Map<String, String> getDataMap() {
Map<String, String> dataMap = new HashMap<>();
for (int i = 0; i < DoubleParamTypeEnums.values().length; i++) {
String key = DoubleParamTypeEnums.values()[i].getKey();
String value = DoubleParamTypeEnums.values()[i].getValue();
dataMap.put(key, value);
}
return dataMap;
}
}

2、使用:

    public static void doubleParamTypeDemo() {
String seasonKey = "0";
String seasonValue = "春";
System.out.println("双实参枚举查询key结果:" + DoubleParamTypeEnums.SPRING.getKey()); //toPrint->双实参枚举查询key结果:0
System.out.println("双实参枚举根据value查询key结果:" + DoubleParamTypeEnums.getKey(seasonValue)); //toPrint->双实参枚举根据value查询key结果:0
System.out.println("双实参枚举根据key查询常量对象名结果:" + DoubleParamTypeEnums.getKeyObjectName(seasonKey)); //toPrint->双实参枚举根据key查询常量对象名结果:SPRING
System.out.println("双实参枚举查询value结果:" + DoubleParamTypeEnums.SPRING.getValue()); //toPrint->双实参枚举查询value结果:春
System.out.println("双实参枚举根据key查询value结果:" + DoubleParamTypeEnums.getValue(seasonKey)); //toPrint->双实参枚举根据key查询value结果:春
System.out.println("双实参枚举根据value查询常量对象名结果:" + DoubleParamTypeEnums.getValueObjectName(seasonValue)); //toPrint->双实参枚举根据value查询常量对象名结果:SPRING
System.out.println("双实参枚举Map集合结果:" + DoubleParamTypeEnums.getDataMap()); //toPrint->双实参枚举Map集合结果:{0=春, 1=夏, 2=秋, 3=冬}
System.out.println("双实参枚举Map集合查询value结果:" + DoubleParamTypeEnums.getDataMap().get(seasonKey)); //toPrint->双实参枚举Map集合查询value结果:春
if (seasonKey.equals(DoubleParamTypeEnums.SPRING.getKey())) {
System.out.println(seasonKey); //toPrint->0
}
}

5、枚举Enum的更多相关文章

  1. MySQL字段之集合(set)枚举(enum)

    MySQL字段之集合(set)枚举(enum) (2008-12-23 13:51:23) 标签:it  分类:MySQL 集合 SET mysql> create table jihe(f1 ...

  2. 枚举 enum

    typedef enum : NSUInteger { <#MyEnumValueA#>, <#MyEnumValueB#>, <#MyEnumValueC#>, ...

  3. 枚举enum学习小记

    参考文献: [1]C++程序设计语言(特别版), 裘宗燕译, 机械工业出版社 [2]C++ Primer (3rd Ed.), S.B. Lippman and J. Lajoie, 人民邮电出版社 ...

  4. Java 枚举(enum) 详解7种常见的用法

    Java 枚举(enum) 详解7种常见的用法 来源 https://blog.csdn.net/qq_27093465/article/details/52180865 JDK1.5引入了新的类型— ...

  5. Python 枚举 enum

    Python 枚举 enum enum 标准模块在 3.4 版本才可以使用,3.3 以下版本需要独立安装:https://pypi.python.org/pypi/enum34#downloads,官 ...

  6. 【转】结构struct 联合Union和枚举Enum的细节讨论

    结构struct 联合Union和枚举Enum的细节讨论 联合(Union)是一种构造数据类型,它提供了一种使不同类型数据类型成员之间共享存储空间的方法,同时可以实现不同类型数据成员之间的自动类型转换 ...

  7. 枚举Enum和常量0之间的恩怨

    1,任何为0的常量表达式都能隐式的转换成枚举Enum. 对于这一点,在程序中没少吃苦头.特别是对于函数重载的情况,往往让人一头雾水. 看看下面的代码(摘自MSDN),你能猜到输出吗? public e ...

  8. C++和Java中枚举enum的用法

    在C++和java中都有枚举enum这个关键字,但是它们之间又不太一样.对于C++来说,枚举是一系列命名了的整型常量,而且从枚举值转化为对应的整型值是在内部进行的.而对于Java来说,枚举更像一个类的 ...

  9. 【转】枚举enum学习小记

    原帖: http://hi.baidu.com/yuleishou/item/caacae872190031ec216272f 表示在vs2008下实验了一下,有些东西和原帖的还是不一样的,都贴在这里 ...

  10. 枚举类型与位域枚举Enum

    一.概述 定义一个值类型,其中包含固定值集合.枚举类型变量可以是此集合中的任意一个或多个值.枚举使用enum关键字来声明,与类同级.枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符.枚 ...

随机推荐

  1. 洛谷P1438 无聊的数列 (线段树+差分)

    变了个花样,在l~r区间加上一个等差数列,等差数列的显著特点就是公差d,我们容易想到用线段树维护差分数组,在l位置加上k,在l+1~r位置加上d,最后在r+1位置减去k+(l-r)*d,这样就是在差分 ...

  2. 后端框架学习3------SpringMVC

    springMVC学习笔记 官方文档地址:https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html# ...

  3. Vue学习之--------列表渲染、v-for中key的原理、列表过滤的实现(2022/7/13)

    文章目录 1.基本列表 1.1 基本知识 1.2 代码实例 1.3 测试效果 2.key的原理 2.1基本知识 2.2 代码实例 2.3 测试效果 2.4 原理图解 3.列表过滤 3.1 代码实例 3 ...

  4. HTML+CSS基础知识(4)简单的广告界面

    文章目录 1.网页实例 1.1 代码 1.2 测试效果 1.网页实例 1.1 代码 css样式 /* 清除页面样式 */ *{ margin:0; padding: 0; } /* 统一页面的样式 * ...

  5. 彻底学会Selenium元素定位

    转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/63099961.html 你好,我是测试蔡坨坨. 最近收到不少初学UI自动化测试的小伙伴私信,对于元素的定位还是有些头疼,总 ...

  6. SpringCloud(二) - Eureka注册中心,feign远程调用,hystrix降级和熔断

    1.项目模块介绍 2. 父项目 主要依赖 spring-cloud 的 版本控制 <properties> <!-- springCloud 版本 --> <scd.ve ...

  7. Bob 的生存概率问题

    Bob 的生存概率问题 作者:Grey 原文地址: 博客园:Bob 的生存概率问题 CSDN:Bob 的生存概率问题 题目描述 给定五个参数 n , m , i , j , k,表示在一个 n*m 的 ...

  8. 笔记:Debian下为sublime text建立软链接[像vi一样到处使用]

    先查询sublime-text安装路径 :~$ dpkg -L sublime-text /. /opt /opt/sublime_text ... /opt/sublime_text/sublime ...

  9. Python基础阶段总结:ATM项目实战

    目录 ATM逻辑描述 三层框架简介 1.第一层(src.py) 2.第二层(interface文件夹下内容) 3.第三层(db_hanlder) 启动函数 用户注册功能 用户登录 common中的小功 ...

  10. Python调用golang

    有些时候因为效率问题部分代码会 使用Python调用go的编译生成动态链接库go 代码示例//add.gopackage main import "C" //export Addf ...