关键字:enum
为什么要用
如果不用的话,要定义多个变量的时候,需要这么写
int n1=1;
int n2=2;
int n3=3;
int n4=4;
用了之后这么写即可
enum en{
n1,
n2,
n3,
n4
}
enum内的元素返回值是自身名字
System.out.println(en.n2);
输出:n2
enum有构造方法,用private修饰
通过在enum中定义setValue、getValue,就可以给元素赋值、取值。
取值也可以用enum.values()赋给一个数组,然后再取。
enum en{
n1,
n2,
n3,
n4;
private String value;
public void setValue(String value) {
this.value = value;
}
public String getValue() {
return value;
}
private en(){
}
private en(String value){
this.value=value;
}
}
在元素后面加括号就可以调用构造函数赋值
enum en{
n1,
n2("这是n2通过构造函数赋的值"),
n3,
n4;
private String value;
public void setValue(String value) {
this.value = value;
}
public String getValue() {
return value;
}
private en(){
}
private en(String value){
this.value=value;
}
}
public static void main(String[] args) {
en.n1.setValue("这是n1通过setValue赋的值");
m.out.println(en.n1.getValue());
System.out.println(en.n2.getValue());
}
输出:
这是n1通过setValue赋的值
这是n2通过构造函数赋的值
enum.values()
value()方法可以将枚举类转变为一个枚举类型的数组,因为枚举中没有下标,我们没有办法通过下标来快速找到需要的枚举类,这时候,转变为数组之后,我们就可以通过数组的下标,来找到我们需要的枚举类。
public static void main(String[] args) {
en[] arr=en.values();
for (int i=0;i< arr.length;i++){
System.out.println(arr[i]);
}
}
输出
n1
n2
n3
n4
enum.valueOf()
调用valueOf()会返回元素名
enum.n1.ordinal()
返回当前元素的下标
enum.n1.compareTo()
返回自己元素的下标减括号元素下标的值