• 欢迎访问天天编码网站,Java技术、技术书单、开发工具,欢迎加入天天编码
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏天天编码吧
  • 我们的淘宝店铺已经开张了哦,传送门:https://shop145764801.taobao.com/

深入分析Java中枚举(enum)的用法

Java基础 tiantian 1009次浏览 0个评论 扫描二维码

一般而言,Java中的枚举类(enum),和Java中的普通类(Class)一样,只是预先定义了一系列的示例变量。本文将通过几个代码示例的方式来带领读者,一起学习如何使用Java中的枚举(enum)。

深入分析Java中枚举(enum)的用法

简单示例

public enum Color {
// 每个变量都是 Color 的一个示例
RED, YELLOW, BLUE;
}
public class Main {
public static void main(String[] args) {
for (Color color : Color.values()) {
System.out.println(color);
}
}
}

建议大家先仔细思考得出答案后,再上机验证,正确的答案是:

RED
YELLOW
BLUE

从这个示例可以看出枚举(enum)与普通类(Class)之间还是存在着较大区别的:
1. 枚举的内部直接就可以书写示例变量,比如 RED, YELLOW, BLUE。
2. 枚举有一些自然获得的成员函数,比如 Color.values() 方法。

构造函数

枚举作为与普通类相似的一个依据就是,枚举也可以含有构造函数。

public enum Color {
// 每个变量都是 Color 的一个示例
RED(1), YELLOW(2), BLUE(3);

private int value;

private Color() {}

private Color(int i) {
this.value = i;
}

// 定义实例方法
public void printValue() {
System.out.println(this.value);
}
}
public class Main {
public static void main(String[] args) {
for (Color color : Color.values()) {
color.printValue();
}
}
}

建议大家先仔细思考得出答案后,再上机验证,正确的答案是:

1
2
3

总结

以上两个示例代码,代表了实际项目工程中使用枚举的最常见情形。我们可以认为,枚举是Java中提供的一种特殊的Class,它可以用来方便地预先定义一系列的实例常量。同时,枚举也限制住了该类型的实例变量的个数和可能值,因为一个枚举的实例变量在定义该枚举时就确定了,不可再修改。

枚举最大的特点就是限制住了该类型的可能取值范围,相当于防止了无效的取值。我们可以看看下面这个简单的示例:

public void doSomethingWithColor(int color);

如果给出这样的一个函数说明,在没有进一步说明的情况下,该函数的使用者可以会使用到错误的参数值,从而导致函数出错。如果,我们把该函数改成如下的形式:

public void soSomethingWithColor(Color color);

此时,函数的使用者就可以知道,该函数的有效参数只有 RED、BLACK和BLUE。


天天编码 , 版权所有丨本文标题:深入分析Java中枚举(enum)的用法
转载请保留页面地址:http://www.tiantianbianma.com/java-enum.html/
喜欢 (0)
支付宝[多谢打赏]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址