Java枚举

定义枚举类型的语法结构:

Java枚举

示例1:

public enum Color {

    Red,GREEN;//定义两个枚举对象,此时调用无参构造方法。也可以写成:RED(),GREEN();
}

示例2:

public enum Color {

    Red(1,"红色"),GREEN(2,"绿色");//调用有参构造方法生成两个枚举对象
    
    private int value;
    private String name;
    
    //有参构造方法
    private Color(int value,String name) {
        this.value = value;
        this.name = name();
    }

    public int getValue() {
        return value;
    }

    public String getName() {
        return name;
    }
}

示例3:

public enum Color {

    Red {
        @Override
        public String getLabel() {
            return "红色";
        }
    },GREEN {
        @Override
        public String getLabel() {
            return "绿色";
        }
    };//当枚举定义抽象方法时,枚举对象必须实现所有的抽象方法
    
    public abstract String getLabel();


}
示例4:

public enum Color {

    Red,GREEN;
}

class Test{
    
    public static void main(String[] args) {
        Color [] colors = Color.values();//values()方法用于获取枚举类型Color中所有的对象
        for (Color color : colors) {
            System.out.println(color);
        }
    }
}

示例4:

public enum Color {

    RED,GREEN,BLUE;
    
    public static void print(Color color) {
        switch (color) {                    //枚举类型可以用于switch中
        case RED:
            System.out.println("红色");
            break;
        case GREEN:
            System.out.println("绿色");
            break;
        case BLUE:
            System.out.println("蓝色");
            break;
        default:
            System.out.println("未知颜色");
            break;
        }
    }
}

public class Test {

    public static void main(String[] args) {
        Color [] colors = Color.values();//values()方法用于获取枚举类型Color中所有的对象
        for (Color color : colors) {
            Color.print(color);
        }
    }
}