这篇文章给大家介绍Jave中怎么对枚举进行操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
枚举其实就是一种类型,跟int, char 这种差不多,就是定义变量时限制输入的,你只能够赋enum里面规定的值。
定义枚举 方法很简单,就跟定义一个类一样,只是把class换成 enum,其他的,你懂地。e.g:
定义一个简单的枚举代码
public enum WorkDay{ Monday,Tuesday,Wednesday,Thurday,Friday;//定义时,枚举值间有逗号隔开,***用分号结束 }
废话不多说,直接上main 方法,拿去玩玩吧:
Java代码
public static void main(String []args) { WorkDay myworkday=WorkDay.Wednesday; switch (myworkday) { case Monday: System.out.println("you work day is Monday !"); break; case Tuesday: System.out.println("you work day is Tuesday!"); break; case Wednesday: System.out.println("you work day is Wednesday !"); break; case Thurday: System.out.println("you work day is Thurday !"); break; case Friday: System.out.println("you work day is Friday !"); break; } System.out.println("--------遍历所有值----------"); //----使用values()方法返回一个数组 for(WorkDay day:WorkDay.values()) { System.out.println(day); } //-----既然是数组,就可以统计大小 System.out.println("WorkDay 里面有 "+WorkDay.values().length+" 个元素"); //--------------------调用 ordinal()方法,返回枚举值在枚举中的索引,数组索引嘛,当然从0开始 System.out.println(WorkDay.Monday.ordinal()); System.out.println(WorkDay.Friday.ordinal()); //---默认实现java.lang.Comparable接口 ,测试测试 System.out.println(WorkDay.Monday.compareTo(WorkDay.Thurday));//结果应该是 -3 //---Monday的索引为0,Thurday为 3,0-3=-3, System.out.println(WorkDay.Friday.compareTo(WorkDay.Tuesday));//同理,结果应该为4-1=3, }
简单吧,来点狠的,前面说了,枚举有点像类,只是把class换成了enum,那么它跟一般的类一样可以添加属性或方法。
带方法与属性的enum代码
public enum WeAreJavaer{ chinese,java, spring, DB2, AIX; // 枚举列表,必须写在最前面,否则编译出错 private final static String location = "javaeye"; //定义一个属性 public static WeAreJavaer getInfomation() { WeAreJavaer flag=null; if (location.equals("javaeye")) { flag=java; } else { flag= chinese; } return flag; } }
老规矩,直接上main()方法测试:
写道
public static void main(String []ags) { System.out.println("---------------------测试调用枚举中写的方法-------------------------------"); System.out.println("直接调用枚举里面的方法: "+ WeAreJavaer.getInfomation()); }
来点更狠的。
你可以通过括号来给enum赋值,这样的话,你必须有带参的构造方法,还需要有一属性与方法,否则编译时会出错。
另外,你如果给enum里面的元素赋值的话,要么都赋,要么都不赋,不要东赋一个,西赋一个。
如果不赋值则不能写构造方法,如果你赋值了,而没有构造方法,编译还是通不过,废话不多少,来,看:
可赋值的enum代码
public enum People { xiaowang(20), xiaozhang(32),xiaoli(50), xiaogou(21); private final int age; People(int value) { //构造器只能是默认或者private, 从而保证构造函数只能在内部使用 this.age = value; } public int getAge() { return age; } }
好吧,啥也不说了,接下来的事,你懂地:
测试带值enum代码
public static void main(String[] args) { for(People people:People.values()){ System.out.println(people+" 的年龄 :"+people.getAge()); } }
关于Jave中怎么对枚举进行操作就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。