枚举类:用enum关键字来定义一个枚举类

2024-08-23 21:18
文章标签 定义 关键字 枚举 enum

本文主要是介绍枚举类:用enum关键字来定义一个枚举类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1)枚举类的两种定义方法
1》通过构造器
public enum Grade{
A("A", "90-100"),B("B","80-89"),C("C", "70-79"),D("D", "80-89"),E("E", "90-100");
private String tip;
private String desc;
private Grade(String tip, String desc){
this.tip = tip;
this.desc = desc;
}
public String getTip() {
return tip;
}
public String getDesc() {
return desc;
}
}
2》通过匿名内部类(一般用于有抽象方法的枚举)
eg:
public enum Season {//注意:含有抽象方法的枚举类不用加abstract
                            SPRING{
@Override
public void show(){
System.out.println("春天");
}
},SUMMER{
@Override
public void show() {
System.out.println("夏天");
}
},AUTOMN{
@Override
public void show() {
System.out.println("秋天");
}
},WINNTER{
@Override
public void show() {
System.out.println("冬天");
}
};
//抽象方法
public abstract void show();
}
3)switch语句和枚举类的联用
eg:
Season season = Season.SPRING;
String msg = null;
switch(season){
case SPRING:msg = "1"; break;//注意不是Season.SPRING
case SUMMER:msg = "2"; break;
case AUTOMN:msg = "3"; break;
case WINNTER:msg = "4"; break;
}
System.out.println(msg);        
4)枚举类常用方法
1》String name():返回枚举值的名称
2》int ordinal():显示枚举值对应的索引,从0开始
3》type[] values():获得该枚举类对应的所有枚举值,返回一个数组
4》static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)://将字符串转换成带指定名称的指定枚举类型的枚举常量。
                eg:
Season season = Season.SPRING;
System.out.println(season.name());//SPRING
System.out.println(season.ordinal());//0【下标】
                    
Season[] seasons = season.values();//获得属性值数组
for(Season s : seasons){
System.out.println(s.name());
}
//Season.valueOf(Season.class, "QQ");//可判断QQ是否属于枚举值之一,
//抛出IllegalArgumentException:异常
                    
System.out.println("=="+Season.valueOf(Season.class, "SPRING").name());//正常:SPRING.        
//Season.valueOf(Season.class, "spring");//也会抛出异常
5)理解:
1》枚举类中的每一个枚举值,相当于是实例变量
2》枚举类与普通类一致,可以继承或实现,如果有抽象方的话,可以利用每个枚举类以匿名内部类的方式去实现
3》枚举值可以用在switch语句的case后面,并且直接些枚举值,不需要加上枚举类。
4》若枚举类只有一个枚举值,则可类似于单例设计模式。
补充:注意枚举类和枚举集合的区别.Enum  Enumeration

 eration

这篇关于枚举类:用enum关键字来定义一个枚举类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100514

相关文章

Kotlin 枚举类使用举例

《Kotlin枚举类使用举例》枚举类(EnumClasses)是Kotlin中用于定义固定集合值的特殊类,它表示一组命名的常量,每个枚举常量都是该类的单例实例,接下来通过本文给大家介绍Kotl... 目录一、编程枚举类核心概念二、基础语法与特性1. 基本定义2. 带参数的枚举3. 实现接口4. 内置属性三、

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

Java中的volatile关键字多方面解析

《Java中的volatile关键字多方面解析》volatile用于保证多线程变量可见性与禁止重排序,适用于状态标志、单例模式等场景,但不保证原子性,相较synchronized更轻量,但需谨慎使用以... 目录1. volatile的作用1.1 保证可见性1.2 禁止指令重排序2. volatile的使用

C#之枚举类型与随机数详解

《C#之枚举类型与随机数详解》文章讲解了枚举类型的定义与使用方法,包括在main外部声明枚举,用于表示游戏状态和周几状态,枚举值默认从0开始递增,也可手动设置初始值以生成随机数... 目录枚举类型1.定义枚举类型(main外)2.使用生成随机数总结枚举类型1.定义枚举类型(main外)enum 类型名字

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1

Django中的函数视图和类视图以及路由的定义方式

《Django中的函数视图和类视图以及路由的定义方式》Django视图分函数视图和类视图,前者用函数处理请求,后者继承View类定义方法,路由使用path()、re_path()或url(),通过in... 目录函数视图类视图路由总路由函数视图的路由类视图定义路由总结Django允许接收的请求方法http

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

C++11作用域枚举(Scoped Enums)的实现示例

《C++11作用域枚举(ScopedEnums)的实现示例》枚举类型是一种非常实用的工具,C++11标准引入了作用域枚举,也称为强类型枚举,本文主要介绍了C++11作用域枚举(ScopedEnums... 目录一、引言二、传统枚举类型的局限性2.1 命名空间污染2.2 整型提升问题2.3 类型转换问题三、C

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos