[Java笔记]枚举的用法

来源:互联网 发布:淘宝咸鱼官方下载 编辑:程序博客网 时间:2024/05/01 01:20

枚举的用法

[一] Switch语句以及枚举自带的属性

此处要注意Switch(参数)参数类型只能是byte,short,char,int和枚举类型,float,double,string类型都不可以。

public class EnumExample {public enum ColorEnum {RED, GREEN, YELLOW, BLUE;}public static void main(String[] args) {// Enum用于Switch;输出结果 Color is blueColorEnum colorEnum = ColorEnum.BLUE;switch (colorEnum) {case RED:System.out.println("Color is red");break;case GREEN:System.out.println("Color is green");break;case YELLOW:System.out.println("Color is yellow");break;case BLUE:System.out.println("Color is blue");break;}// 枚举的遍历;输出结果 RED GREEN YELLOW BLUEfor (ColorEnum color : ColorEnum.values()) {System.out.print(color + " ");}// 枚举的个数;输出的结果 ColorEnum枚举中的值的个数:4System.out.println("ColorEnum枚举中的值的个数:" + colorEnum.values().length);// 枚举中索引的位置,默认从0开始;输出的结果 0 1 2System.out.println(ColorEnum.RED.ordinal());System.out.println(colorEnum.GREEN.ordinal());System.out.println(ColorEnum.YELLOW.ordinal());}}

[二]枚举类似“类”的用法

可以写成员变量,构造方法以及方法。其中需要注意,这些必须写在枚举之后,而且枚举必须以分号结束。(如果只是单纯的写枚举常量,分号可省略)。同时枚举的构造方法必须是Private,保证构造方法只在内部使用。

public class EnumExample {public enum ColorEnum {RED("红色"), GREEN("绿色"), YELLOW, BLUE;// 成员变量private String name;// 构造方法private ColorEnum() {System.out.println("空构造方法");}// 构造方法重载private ColorEnum(String name) {this.name = name;System.out.println("重载的构造方法");}// getter setterpublic String getName() {return name;}public void setName(String name) {this.name = name;}// 自定义方法public static ColorEnum[] getNames() {return ColorEnum.values();}}public static void main(String[] args) {ColorEnum colorEnum=ColorEnum.RED;System.out.println(colorEnum.getName());}}
结果是:

重载的构造方法
重载的构造方法
空构造方法
空构造方法
红色


[三]带有抽象方法的枚举

public class EnumExample {public enum ColorEnum {RED {public String getName() {return "红色";}},GREEN {public String getName() {return "绿色";}},YELLOW {public String getName() {return "黄色";}},BLUE {public String getName() {return "蓝色";}};public abstract String getName();}public static void main(String[] args) {ColorEnum colorEnum = ColorEnum.RED;System.out.println(colorEnum.getName());}}
结果是:红色

其他作用:也可以实现接口


0 0
原创粉丝点击