java枚举类型enum用法_Java枚举类型——Enum的简单用法

java枚举类型enum用法_Java枚举类型——Enum的简单用法枚举类型是 Java1 5 的新特性 是指由一组固定的常量组成合法的类型 Java 中由关键字 enum 来定义一个枚举类型 我们可以使用枚举来取代用 publicfinals 修饰的一批相关数据 如我们定义红绿灯的颜色 publicfinals 1 publicfinals 2 publicfinals

401faf4fa4d0ed328a71e86e500cefd2.png

枚举类型是Java1.5的新特性,是指由一组固定的常量组成合法的类型。Java中由关键字enum来定义一个枚举类型。我们可以使用枚举来取代用public final static修饰的一批相关数据。如我们定义红绿灯的颜色:

public final static int RED = 1;

public final static int GREEN = 2;

public final static int YELLOW = 3;

当需要使用时,通过switch来获取值:

public static String getValue(int color) {

StringBuffer result = new StringBuffer();

switch (color) {

case RED:

result.append(“红灯”);

break;

case GREEN:

result.append(“绿灯”);

break;

case YELLOW:

result.append(“黄灯”);

break;

default:

result.append(“颜色有误”);

break;

}

return result.toString();

}

调用方法时需要传入参数,但是却无法保证传入的数据是合法的。

例如:System.out.println(getValue(RED));//正常

System.out.println(getValue(6));//存在类型不安全问题,编译不报错,但是数据不合要求

若使用枚举方式来代替,修改一下设置的方式就可以比较容易的获取到值:

定义:

public enum Color {

RED(“红灯”), GREEN(“绿灯”), YELLOW(“黄灯”);

private String value = “”;

private Color(String value) {

this.value = value;

}

public String getValue() {

return value;

}

}

调用测试方法:

public static void test(Color c){

String val = c.getValue();

System.out.println(val);

}

test(Color.RED);

输出:红灯

如何传入的值不是Color中的枚举值,则编译时就不通过。

同时枚举还可以设置各种颜色的灯亮时对应的行动:

在枚举中添加行动的抽象方法,并在枚举实例中实现:

public enum Color {

RED(“红灯”) {

@Override

public String action() {

return “停”;

}

}, GREEN(“绿灯”) {

@Override

public String action() {

return “行”;

}

}, YELLOW(“黄灯”) {

@Override

public String action() {

return “等一等”;

}

};

private String value = “”;

private Color(String value) {

this.value = value;

}

public String getValue() {

return value;

}

//行动的抽象方法

public abstract String action();

}

调用测试方法:

public static void test(Color c){

String val = c.getValue();

String action = c.action();

System.out.println(val);

System.out.println(action);

}

test(Color.RED);

输出结果:红灯

综上所述,使用枚举可以传入参时进行规则校验,参数只能为Color中的三个枚举值,否则在编译阶段就不能通过,保证了程序类型的安全性。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214878.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午3:14
下一篇 2026年3月18日 下午3:14


相关推荐

  • hive instr 函数

    hive instr 函数instr stringstr stringsubstr 查找字符串 str 中子字符串 substr 出现的位置 如果查找失败将返回 0 如果任一参数为 Null 将返回 null 注意位置为从 1 开始的示例 如果在一个表里面找出某些字段包含一些特殊字符的数据如

    2026年3月17日
    2
  • CAS单点登录的实现(二)「建议收藏」

    CAS单点登录的实现(二)「建议收藏」这篇文章对CAS单点登录具体实现的一些步骤就行讲述,至于CAS单点登录的实现原理分析,请参看下面这篇文章:CAS单点登录原理分析https://blog.csdn.net/qq_41258204/article/details/84036875CAS包含两个部分:CASServer和CASClient。CASServer:其实就是一个war包,CAS框架已经提供。只…

    2022年6月7日
    69
  • Java多线程:线程死锁

    Java多线程:线程死锁

    2021年11月16日
    43
  • Python中random函数用法整理

    Python中random函数用法整理目录 1 random random 返回随机生成的一个浮点数 范围在 0 1 之间 2 random uniform a b 返回随机生成的一个浮点数 范围在 a b 之间 3 random randint a b 生成指定范围内的整数 4 random randrange start stop step 用于从指定范围内按指定基数递增的集合中获取一个随机数 5 random choice 从指定的序列中获取一个随机元素 6 random shu

    2026年3月20日
    3
  • 域名和服务器IP地址有什么关系[通俗易懂]

    域名和服务器IP地址有什么关系?很多用户也经常听说或接触域名和服务器IP地址,一般用户访问网站是通过域名或搜索进入,但大多数人不知道的是直接再浏览器里面输入IP地址也可以直接访问网站,下面我们就详细聊聊域名和服务器IP地址之间的关系。域名和服务器IP地址之间的关系?对于很多初入互联网的用户来说,刚开始对于域名和IP地址的概念不清楚,经常会将服务器IP地址当作域名,甚至误以为域名就是服务器IP地址等等很多问题,那么域名和服务器IP地址的定义是怎么样的呢?又有怎样的关联呢?域名:域名是一串用各.

    2022年4月16日
    79
  • 数据库–关于truncate和delete的区别

    数据库–关于truncate和delete的区别数据库 关于 truncate 和 delete 的区别 1 truncate 删除表中的内容 不删除表结构 释放空间 2 delete 删除内容 不删除表结构 但不释放空间 3 区别 3 1 内存空间 truncate 删除数据后重新写数据会从 1 开始 而 delete 删除数据后只会从删除前的最后一行续写 内存空间上 truncate 省空间 3 2 处理速度因为 truncate 是直接从 1 开始 即全部清空开始 而 delete 需要先得到当前行数 从而进行续写 所以 truncate 删除速

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号