在Java程序中,我们通常通过声明初始化常量或变量来满足程序的需求。
但是有些方法在运行时,它需要的数据不能是任意的,必须是一定范围内的值。
通过枚举,我们把值规定到固定范围,不用担心代码编写失误或超出范围;
同时,枚举可以在整个程序内调用,不用重复编写,提高代码复用率;
此外枚举也能让代码整体更直观的、可读性。
枚举的应用场景:错误码,状态机。
java.lang.Enum
类//权限修饰符 enum 枚举名 implements 接口名{
// 元素1,元素2...;//分号可有可无
//}
public enum Grade{
A,B,C,D,E;
}
=
为枚举常量赋值//不能以数字开头
public enum Num{
1,2,3;
}
//不能用=赋值
public enum Grade{
A = 1,B = 2;
}
除了不能继承,基本上可以将 enum 看做一个常规的类
//第一种写法
public enum Color{
RED,BLACK,WHITE;
}
//第二种写法
public enum Color{
RED(),BLACK(),WHITE();
}
public enum Color{
RED("red color",0),BLACK("black color",1),WHITE("white color",2);
//必须加,enum不能实例化对象
Color(String str,int num){
name = str;
id = num;
}
String name;
int id;
}
方法名 | 参数 | 返回值 | 作用 |
---|---|---|---|
compareTo() |
枚举值 | int |
当前枚举元素在该元素的位置 - 表示左 (+) 表示右 |
equals() |
object | boolean |
判断是否是当前枚举元素 |
hashcode() |
int |
获取枚举值的哈希码 | |
ordinal() |
int |
获取枚举元素所在位置 | |
name() |
String |
返回实例名 | |
toString() |
String |
枚举元素转为String | |
getClass() |
class |
获取当前枚举元素的类 | |
getDeclaringClass()) |
class |
获取定义枚举的类 |
=
为枚举常量赋值。values()
返回枚举实例数组==
比较enum实例原文:https://www.cnblogs.com/occlive/p/13362034.html