Java枚举类与常用方法
小简博客 - 小简的技术栈,专注Java及其他计算机技术、互联网技术教程 (ideaopen.cn)
枚举类

如何创建
首先,从名字就可以看出,枚举是一个类,那么我们就可以直接在创建时选择枚举就可以。
或者我们也可以在普通类前面加上enum关键词。
public enum Week {
MON,TUE,WED,THU,FRI,SAT,SUN
}
然后格式就是使用,隔开。
使用枚举
values()返回枚举类中所有的值。
ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
valueOf()方法返回指定字符串值的枚举常量。
该方法为静态方法,调用者为枚举类,不是枚举值;
该方法形参只要一个String类型的值即可,并且该String值为枚举值对应的名称,即toString()方法返回的值(比如枚举类为SPRING,对应的名称就是"SPRING"),所以肯定是需要双引号的;
扩展方法
compareTo(E o)方法:则是比较枚举的大小,注意其内部实现是根据每个枚举的ordinal值大小进行比较的。
name()方法与toString():几乎是等同的,都是输出变量的字符串形式。
getDeclaringClass(): 返回该枚举变量所在的枚举类。
使用示例

首先我们定义了一个枚举类,在Week2包里面。
创建一个测试类,代码如下,我将常用方法挨个使用了一遍。
package Week2;
public class EnumTest {
public static void main(String[] args) {
//返回枚举类Week2.Week中的值
System.out.println(Week.MON);
//values()方法返回枚举类Week2.Week中指定索引的值
System.out.println(Week.values()[0]);
//找到枚举类Week2.Week中值为MON的索引
System.out.println(Week.MON.ordinal());
//返回指定字符串的枚举常量
System.out.println(Week.valueOf("MON"));
//枚举大小比较
System.out.println(Week.MON.compareTo(Week.TUE));
//枚举name()方法
System.out.println(Week.MON.name());
//枚举toString()方法
System.out.println(Week.MON.toString());
//枚举getDeclaringClass()方法
System.out.println(Week.MON.getDeclaringClass());
//遍历枚举类Week2.Week
for (Week day : Week.values()) {
System.out.print(day+" ");
}
}
}
运行后结果如下。

作用请挨个代码对照输出。
//values()方法返回枚举类Week2.Week中指定索引的值
System.out.println(Week.values()[0]);
这个方法的话,values()方法如果不在后面使用[索引下标],那么他将会输出一串地址,而不是值,后面的[ ]里面加上下标就可以输出对应值了。
Java枚举类与常用方法的更多相关文章
- Java枚举类在生产环境中的使用方式
前言 Java枚举在项目中使用非常普遍,许多人在做项目时,一定会遇到要维护某些业务场景状态的时候,往往会定义一个常量类,然后添加业务场景相关的状态常量.但实际上,生产环境的项目中业务状态的定义大部 ...
- Java枚举类和注解梳理
1. 枚举类 1. 枚举类的使用 枚举类的理解:类的对象只有有限个,确定的.我们称此类为枚举类. 当需要定义一组常量时,强烈建议使用枚举类. 如果枚举类中只有一个对象,则可以作为单例模式的实现方式. ...
- java枚举类学习笔记总结
枚举类的说明: 1.枚举类的理解:类的对象只有有限个,确定的.我们称此类为枚举类 2.当需要定义一组常量时,强烈建议使用枚举类 3.如果枚举类中只一个对象,则可以作为单例模式的实现方式. 如何自定义枚 ...
- Java枚举类、注解和反射
本文主要介绍的是枚举类,注解和反射.还有一些基础知识:static,基本数据类型,运算符优先级放在文中,以便查阅复习. 其中牵扯到泛型的部分,可参考本人的另一篇博客:(Collection, List ...
- Java 枚举类
如果要定义一个枚举类: public enum Size { SAMLL, MEDIUM, LARGE, EXTRA, EXTRA_LARGE}; 实际上,这个声明定义的类型是一个类,它刚好有4个实例 ...
- Java String类的常用方法
String(byte[ ] bytes):通过byte数组构造字符串对象. String(char[ ] value):通过char数组构造字符串对象. String(Sting original) ...
- java 枚举类 enum 总结
枚举定义: enum是计算机编程语言中的一种数据类型.枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把这些量 ...
- java 枚举类小结 Enum
好久没有接触枚举类了,差不多都忘了,今天抽出个时间总结一下吧.说实话,枚举类确实能够给我们带来很大的方便. 说明:枚举类它约定了一个范围,可以理解成只可以生成固定的几个对象让外界去调用,故枚举类中的构 ...
- java枚举类
enum关键字用于定义枚举类,若枚举只有一个成员, 则可以作为一种单例模式的实现方式. 枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰. 枚举类的使用 priva ...
随机推荐
- mq 的缺点?
(1)系统可用性降低 系统引入的外部依赖越多,越容易挂掉,本来你就是 A 系统调用 BCD 三个系统的接口就好了,人 ABCD 四个系统好好的,没啥问题,你偏加个 MQ 进来,万一MQ 挂了咋整?MQ ...
- Springboot 抛出Failed to determine a suitable driver class异常原因
SpringBoot项目,已经依赖了MySQL驱动,却还是无法启动,通过问题排除,如果是启动项目,那么pom值 <packaging>pom</packaging> Faile ...
- 简易shell脚本启动jar包
可参考博客: Shell脚本中$0.$?.$!.$$.$*.$#.$@等的意义 https://blog.csdn.net/csgd2000/article/details/80396996 s ...
- ACM - 最短路 - CodeForces 295B Greg and Graph
CodeForces 295B Greg and Graph 题解 \(Floyd\) 算法是一种基于动态规划的算法,以此题为例介绍最短路算法中的 \(Floyd\) 算法. 我们考虑给定一个图,要找 ...
- Tomcat之“VM options配置”
VM options: -Dfile.encoding=UTF-8
- 与和或(&&和||)比较的区别
&&(短路与)和&(逻辑与)的时候: 有假则为假,全真则为真(有假必假,全真为真) ||(短路或)和|(逻辑或)的时候: 有真则为真,全假则为假(有真必真,全假为假)
- (stm32f103学习总结)—printf重定向
一.printf重定向简介 我们知道C语言中printf函数默认输出设备是显示器,如果要实现在 串口或者LCD上显示,必须重定义标准库函数里调用的与输出设备相关的函数.比如使用printf输出到串口, ...
- 算法 | 串匹配算法之KMP算法及其优化
主串 s:A B D A B C A B C 子串 t: A B C A B 问题:在主串 s 中是否存在一段 t 的子串呢? 形如上述问题,就是串匹配类问题.[串匹配--百度百科] 串匹配问题是一 ...
- PHP截取字符串(指定开始和结束的字符串)
- ES6-11学习笔记--深拷贝与浅拷贝
Object.assign,只是进行了浅拷贝,并没有进行深拷贝. 而且会在复杂结构当中会丢失属性,如下代码: let target = { a: { b: { c: 3 }, e: 4, f: 5, ...