枚举
基本的枚举类型
package com.company;
/**
* @ClassName Test
* @Description
* @Auther liuxiansen
* @Date 2020/3/29 8:55 上午
**/
public class Test{
public static void main(String [] args) {
for (Fruits s : Fruits.values()){
System.out.println(s.name() + " " + s.ordinal() + " " + s.equals(Fruits.APPLE));
System.out.println("*************************");
}
}
}
enum Fruits{
APPLE,
BANANA,
ORANGE,
WATERMELON,
PEAR;
}
使用静态导入:import static com.company.Fruits.*;
就可以去掉枚举类名了
除了不能继承enum之外,可以把enum看做一个普通的类
覆盖enum的方法
public enum Fruits {
APPLE,
BANANA,
ORANGE,
WATERMELON,
PEAR;
public String toString(){
String id = name();
return id.charAt(0) + id.substring(1).toLowerCase();
}
}
可以通过name方法拿到名字
switch与enum
package com.company;
/**
* @ClassName Test
* @Description
* @Auther liuxiansen
* @Date 2020/3/29 8:55 上午
**/
import static com.company.Fruits.*;
public class Test{
public static void main(String [] args) {
SwitchFruit switchFruit = new SwitchFruit();
for(int i=0;i<10;i++){
switchFruit.change();
}
}
}
class SwitchFruit{
Fruits[] s = Fruits.values();
private int flag = 0;
public void change(){
Fruits fruit = s[flag>4?flag=0:flag++];
switch (fruit){
case APPLE:
System.out.println("this is Apple");
break;
case BANANA:
System.out.println("this is Banana");
break;
case PEAR:
System.out.println("this is Pear");
break;
case ORANGE:
System.out.println("this is Orange");
break;
case WATERMELON:
System.out.println("this is Watermelon");
break;
default:
System.out.println("there is nothing");
break;
}
}
}
switch中直接放enum的一个元素
所有的enum都继承自java.lang.Enum类,由于java不支持多继承,所以你的enum不能继承别的类了,但是可以实现一个或多个接口