Java 枚举
JAVA 枚举
2023-09-14 09:04:25 时间
文章目录
1、简单实现枚举 并与 静态内部类进行对比
/**
* 简单实现枚举 并与 静态内部类进行对比
* @author wangrui
*
*/
//枚举类
enum Color{
//枚举类的元素可以不写分号,如果枚举类中还包含其他成员变量、成员方法,则需要加上 ;
RED,GREEN,BLUE
}
public class Main1 {
public static void main(String[] args) {
//枚举实现颜色
Color c = Color.RED;
System.out.println(c);
//静态内部类实现颜色
System.out.println(Colorm.RED);
}
}
class Colorm{
public static String RED="RED";
public static String GREEN="GREEN";
public static String BLUE="BLUE";
}
结果
RED
RED
2、枚举类声明在类的内部
/**
* 1、枚举类可以声明在类的内部
* 2、枚举类转换为类
* @author wangrui
*
*/
public class Main2 {
//枚举内部类
enum Color2
{
RED, GREEN, BLUE;
}
/*
每个枚举都是通过 Class 在内部实现的,且所有的枚举值都是 public static final 的。
以上的枚举类 Color 转化在内部类实现
static class Color{
public static final Color RED = new Color();
public static final Color BLUE = new Color();
public static final Color GREEN = new Color();
} */
public static void main(String[] args) {
Color2 c = Color2.RED;
System.out.println(c);
}
}
结果
RED
3、迭代枚举元素
/**
* 迭代枚举元素
* @author wangrui
*
*/
public class Main3 {
public static void main(String[] args) {
//迭代枚举元素
for(Color3 myEnum:Color3.values()) {
System.out.println(myEnum);
}
}
}
//枚举类
enum Color3{
RED,GREEN,BLUE;
}
结果
RED
GREEN
BLUE
4、枚举与switch 配合
/**
* 枚举与switch 配合
* @author wangrui
*
*/
enum Color4{
RED,GREEN,BLUE
}
public class Main4 {
public static void main(String[] args) {
Color4 myEnum = Color4.GREEN;
//疑问:为什么枚举类型的元素可以直接在不同类中直接使用,如下面的:case RED
switch(myEnum) {
case RED: System.out.println("红色"); break;
case GREEN: System.out.println("绿色"); break;
case BLUE: System.out.println("蓝色"); break;
}
}
}
结果
绿色
5、values(), ordinal() 和 valueOf() 方法
/**
* values(), ordinal() 和 valueOf() 方法
* @author wangrui
*
*/
public class Main5 {
public static void main(String[] args) {
//获取枚举中所有的元素
Color5[] arr = Color5.values();
//迭代枚举
for(Color5 c:arr) {
//获取每一个元素及它的索引
System.out.println(c + "---它的索引是:" + c.ordinal());
}
//使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException
System.out.println(Color5.valueOf("RED"));
// System.out.println(Color5.valueOf("BLACK"));
}
}
enum Color5{
RED,GREEN,BLUE
}
结果
RED---它的索引是:0
GREEN---它的索引是:1
BLUE---它的索引是:2
RED
6、枚举类成员
/**
* 枚举类成员
* @author wangrui
*
*/
//枚举类
enum Color6{
RED,GREEN,BLUE,WHILE; //△这里下面还有其他枚举成员,所以需要加上分号
//△构造函数只能使用 private 访问修饰符,外部无法调用
private Color6() {
System.out.println("构造方法调用处:" + this.toString());
}
public void colorInfo() {
System.out.println("通用色");
}
}
public class Main6 {
public static void main(String[] args) {
//结论:枚举类在实例化的时候,会自动调用内部构造方法,并且会把所有元素遍历一遍
Color6 c = Color6.RED;
//打印c的颜色
System.out.println(c);
//打印枚举类颜色信息
c.colorInfo();
}
}
结果
构造方法调用处:RED
构造方法调用处:GREEN
构造方法调用处:BLUE
构造方法调用处:WHILE
RED
通用色
相关文章
- java二维数组试题_Java二维数组及习题总结
- 做了三年Java,java注释的三种形式
- java开发常用四大框架_大牛经验!常用的5款Java框架汇总[通俗易懂]
- java后端开发需要什么_从事Java后端开发,要学习哪些知识和技能?[通俗易懂]
- 说一下java的运行机制_Java运行机制是什么?「建议收藏」
- java开发常用四大框架_Java 后台开发框架[通俗易懂]
- java后端开发需要学什么_从事Java后端开发,要学习哪些知识和技能?[通俗易懂]
- java dom4j生成xml格式化_Java DOM4J方式生成XML的方法「建议收藏」
- Java中的枚举,这一篇全了,一些不为人知的干货
- java 缓存工具类初始化_Java缓存框架
- java中使用uuid函数_uuid主键
- java和springboot开发祭祀小程序扫墓系统代祭小程序
- 【JAVA】Java 日志打印规范
- 【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 )
- java正则表达式去除html标签详解编程语言
- Java的对象初始化过程详解编程语言
- Java DriverManager.getConnection()方法:获取数据库连接
- Linux下查看Java进程的方法(linux查看java进程)
- 失效Redis Java实现数据过期失效的解决方案(redisjava过期)
- 时间利用Redis与Java设置有效过期时间(redisjava过期)
- 在Linux上编译Java 实用教程指南(linux上编译java)
- 管理Linux下Java版本管理:轻松实现多版本切换(linux下java版本)
- Java应用架构优化基于Oracle10g的实践(c oracle10g)
- 浅析java希尔排序(Shell)算法