Java浅析枚举类的使用
作者:·~简单就好 发布时间:2023-11-10 14:12:58
标签:Java,枚举类
概念:有enum关键字修饰的类,成为枚举类
1、枚举规则
枚举类的对象可以有类里面定义,不支持重新new出来,
枚举类有构造函数,其他的类都一样,可以有多个方法
枚举类的构造方法必须是private私有的,成员变量都公有私有都可以
原因:枚举类的构造方法只能在本类中被调用,因为不支持其他来来new对象,所以自然构造函数为private
代码示例:
package com.meijulei;
//枚举类
public enum Cat {
A("小明",12),B("小花",22),C("小红",23),D("小蓝",30),E("小绿",20),F("小黄",32);
public String name;
private int age;
private Cat(){
}
private Cat(String a,int b){
name=a;
age=b;
}
public void m1(){
System.out.println("姓名为:"+name+",年龄为:"+age);
}
}
//调用
package com.meijulei;
import com.meijulei.Cat;
public class Test {
public static void main(String[] args) {
Cat a=Cat.A;
a.m1();
}
}
2、枚举的个数
注意:枚举的个数讲的是堆中的个数,就是在枚举类里面所声明的对象的个数
3、枚举类中常用函数
**Cat.C.ordinal()**函数,计算出该对象在枚举类中第几个对象(从0开始计算)Cat.C.compareTo(Cat.E) 比较两个对象的差值,前一个减去后一个,
A("小明",12),B("小花",22),C("小红",23),D("小蓝",30),E("小绿",20),F("小黄",32);
System.out.println(Cat.E.ordinal());
System.out.println(Cat.C.compareTo(Cat.E));
//输出
//4
//-2
4、实现枚举类
接下来我们来看一个一个简单的DEMO示例:
/**
* java枚举
*/
public class Enum {
public static void main(String[] args) {
System.out.println(Season.SPRING);
System.out.println(Season.SUMMER);
System.out.println(Season.AUTUMN);
System.out.println(Season.WINTER);
}
}
// 定义的枚举类
enum Season {
// 枚举定义的常量对象必须在最前面
SPRING("春天","万物复苏"),
SUMMER("夏天","烈日炎炎"),
AUTUMN("秋天","硕果累累"),
WINTER("冬天","寒冷刺骨");
private String name;
private String desc;
private Season(String name, String desc) {
this.name = name;
this.desc = desc;
}
public String getName() {
return name;
}
public String getDesc() {
return desc;
}
@Override
public String toString() {
return "Season{" +
"name='" + name + '\'' +
", desc='" + desc + '\'' +
'}';
}
}
输出:
Season{name='春天', desc='万物复苏'}
Season{name='夏天', desc='烈日炎炎'}
Season{name='秋天', desc='硕果累累'}
Season{name='冬天', desc='寒冷刺骨'}
5、枚举类的使用注意事项
当我们使用enum关键字来开发一个枚举类的时候,默认会继承Eunm类,而且是一个final修饰的类
如果我们使用的是无参构造器,则枚举中可以直接省略小括号
// 枚举定义的常量对象必须在最前面
SPRING("春天", "万物复苏"),
SUMMER("夏天", "烈日炎炎"),
AUTUMN("秋天", "硕果累累"),
WINTER("冬天", "寒冷刺骨"),
Other, Shit;
Season() {
}
private Season(String name, String desc) {
this.name = name;
this.desc = desc;
}
来源:https://blog.csdn.net/qq_45830276/article/details/125091733


猜你喜欢
- 本文实例为大家分享了C语言实现通讯管理系统的具体代码,供大家参考,具体内容如下#include<stdio.h>#include
- 效果图简单的效果图(使用开源库)[FlowLayout](“ https://github.com/hongyangAndroid/Flow
- 目录前言项目环境1.线程池示例2.shutdown3.isShutdown4.isTerminated5.awaitTermination6
- ijkPlayer 编译全格式支持 .so库基本步骤拉取docker镜像//命令行执行如下命令即可 docker pull adajqd/i
- 二进制、八进制和十六进制向十进制转换都是非常容易的,就是“按权相加”。所谓“权”,也即“位权”。例如,十进制第1位的位权为100=1,第2位
- 在研究性能的时候,完全可以使用Stopwatch计时器计算一项技术的效率。但是有时想知道某想技术的性能的时候,又常常想不起可以运用Stopw
- 封装(Encapsulation)是面向对象编程的一个核心概念,它意味着将数据(属性)和方法(操作数据的函数)捆绑在一起,形成一个类(Cla
- Android 实现单线程轮循机制批量下载图片listview 在为item 添加从网上下载下来的图片时, 如果每次都整合一个item时都需
- 本文基于GP58系列,它可以兼容ESC/POS指令集,对EPSON的打印机通用.Android下的设备调试,如果设备提供了驱动,按照厂家的驱
- OpenCv提供了函数 findContours()用于对物体轮廓进行检测,该函数实现算法是由S.suzuki K.Abe于1985年发表的
- 前言Spring 的 JDBC Templet 是 Spring 对 JDBC 使用的一个基本的封装。他主要是帮助程序员实现了数据库连接的管
- Android启动的四种方式分别为standard,singleTop,singleTask,singleInstence。standard
- 本文实例展示了Activiti流程图查看的实现方法,具体步骤如下所示:1、测试用例查看图片代码如下:public void viewImag
- 在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 S
- 1.导入System.Runtime.InteropServices命名空间。2.API函数ShowWindow()能够控制人和窗体的现实状
- menu部分xml代码<?xml version="1.0" encoding="utf-8"
- 日期格式处理在控制器中使用对象接收数据前端:<form action="test/add" method=&quo
- c#异步操作,BackgroundWorker类的使用,可以在后台运行需要的代码逻辑。using System;using System.C
- REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系
- 目录或库文件名中包含汉字或空格的话,请将其用半角双引号括住。项目、属性、C/C++、附加包含目录:填写附加头文件所在目录 分号间隔多项项目、