Java枚举学习之定义和基本特性详解
作者:小虚竹and掘金 发布时间:2022-07-23 20:29:44
枚举的定义
1.题目
枚举是JAVA 5.0后增加的一个重要类型。可以用来表示一组取值范围固定的变量。使用enum关键字,可以定义枚举类型。
实现:使用反射查看枚举的修饰符,父类和自定义方法。
2.解题思路
创建一个枚举:Position
定义两个元素,来表示方位。
对于枚举的元素命名方式:全部为大写字母。
创建一个类:Reflection
使用JAVA的反射机制输出Position枚举的修饰符,父类和自定义方法
getModifiers():获取修饰符
getSuperclass():获取父类
getDeclaredMethods():获取声明的方法
3.代码详解
Position
public enum Position {
HERE, THERE
}
Reflection
package com.xiaoxuzhu;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
/**
* Description:
*
* @author xiaoxuzhu
* @version 1.0
*
* <pre>
* 修改记录:
* 修改后版本 修改人修改日期修改内容
* 2022/5/4.1 xiaoxuzhu2022/5/4 Create
* </pre>
* @date 2022/5/4
*/
public class Reflection {
public static void main(String[] args) {
Class<Position> enumClass = Position.class;
String modifiers = Modifier.toString(enumClass.getModifiers());
System.out.println("enum类型的修饰符:" + modifiers);
System.out.println("enum类型的父类:" + enumClass.getSuperclass());
System.out.println("enum类型的自定义方法:");
Method[] methods = enumClass.getDeclaredMethods();
for (Method method : methods) {
System.out.println(method);
}
}
}
反射结果:
枚举的基本特性
1.题目
题目:使用枚举解决不同的变量,使用不同的数字赋值。可以根据数字知道它的含义。
2.解题思路
创建一个枚举:Size
定义三个枚举变量:SMALL, MEDIUM, LARGE
对于枚举的元素命名方式:全部为大写字母。
创建一个类:EnumClass
输出枚举元素的序数,与SMALL元素比较的3种方式结果,枚举元素的名称
Enum类是所有枚举类型的父类,它是一个没有抽象方法的抽象类。
Enum类定义了枚举类常用的方法:
compareTo() :比较枚举元素的顺序
equals() :判断枚举元素是否相同
name() : 获取枚举元素在定义时的名称
ordinal():获得枚举元素在定义时的顺序,从0开始计数。
3.代码详解
Size枚举
public enum Size {
SMALL, MEDIUM, LARGE
}
EnumClass类:
public class EnumClass {
public static void main(String[] args) {
for (Size size : Size.values()) {
System.out.println(size + "的序数是:" + size.ordinal());
System.out.print(size.compareTo(Size.SMALL) + " ");
System.out.print(size.equals(Size.SMALL) + " ");
System.out.println(size == Size.SMALL);
System.out.println(size.name());
System.out.println("********************");
}
}
}
4.多写一个知识点
可以使用“==”来比较两个枚举元素,不需要重写equals()和hashCode()方法,它们已经自动生成了。
增加枚举元素信息
1.题目
题目:枚举类除了不能继承外,可以看作是普通类,可以在类中增加方法和构造函数。
2.解题思路
定义一个新的枚举:Size
定义3个元素:SMALL("我是小号"), MEDIUM("我是中号"), LARGE("我是大号")
对于枚举的元素命名方式:全部为大写字母。
枚举类一定要先定义枚举类型,才能定义类的属性和方法。要使用分号分隔,如果没有定义枚举类型,编译都过不了
3.代码详解
public enum Size2 {
SMALL("我是小号"), MEDIUM("我是中号"), LARGE("我是大号");
private String description;
private Size2(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
public static void main(String[] args) {
for (Size2 size : Size2.values()) {
System.out.println(size + ":" + size.getDescription());
}
}
}
来源:https://juejin.cn/post/7131321703702986765
猜你喜欢
- 循环依赖定义循环依赖就 循环引用,就是两个或多个 bean 相互之间的持有对方,比如 CircleA 引用 CircleB , Circle
- 本地jvm执行flink带web ui使用StreamExecutionEnvironment executionEnvironment =
- Feign传递请求头信息在我之前的文章服务网关Spring Cloud Zuul中,将用户的登录id放在了请求头中传递给内部服务。但是当内部
- 前言1、下面是一个效果展示;2、先抱怨一下,在博客上面的抄袭真的非常严重,为了实现一个图片滑动验证,我搜索了挺久的资料,不过内容翻来覆去就是
- List去重复,我们首先想到的可能是 利用List转Set集合,因为Set集合不允许重复。所以达到这个目的。 如果集合里面是简单对
- servlet、filter、listener、interceptor之间的区别和联系一、概念1.servlet:servlet是一种运行服
- 数据导出到Excel几乎是所有客户都会提出的一个需求。下面我就分享一下我的代码。首先需要引入的jar包:然后就是正式代码了。package
- 本文实例讲解了iOS从背景图中取色的代码,分享给大家供大家参考,具体内容如下实现代码:void *bitmapData; //内存空间的指针
- 一个提交到服务器的处理通常可以分为两个阶段,第一个阶段查询服务器状态(查询或者更新数据库),第二个阶段选择一个合适的结果页面其返回给用户(这
- 关于Plupload的介绍,相信它的官网http://www.plupload.com/已经给得很详细了。Plupload的上传原理简单点说
- 前言《JAVA打砖块》游戏是自制的游戏。玩家操作一根萤幕上水平的“棒子”,让一颗不断弹来弹去的&am
- 目录一、Lambda 表达式简介1、什么是 Lambda 表达式2、为什么需要 Lambda 表达式二、函数式接口和定义1、什么是函数式接口
- 演示代码如下:package swt_jface.demo11; import org.eclipse.swt.SWT; import or
- Oracle 数据库,查询增加RowBounds限制查询条数,默认是0到1000条private final static int rowL
- 这篇文章主要介绍了Java实现发送手机短信语音验证功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- import java.util.List;/*** * 基本接口 * * @author xyq 
- 本文实例为大家分享了java实现马踏棋盘的具体代码,供大家参考,具体内容如下马踏棋盘算法介绍8X8棋盘,马走日字,要求每个方格只进入一次,走
- spring boot 使用profile来分区配置很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时
- What内含一个或多个maven模块的SpringBoot项目称为SpringBoot多模块项目Why便于维护 将一个大的单体项目分成多个子
- 由于要做一个新项目,所以打算做一个简单的图片验证码。先说说思路吧:在服务端,从一个文件夹里面找出8张图片,再把8张图片合并成一张大图,在8个