枚举的学习之路一

来源:互联网 发布:开发手机客户端软件 编辑:程序博客网 时间:2024/06/17 04:35

今天工作中,看到大量使用了枚举来规定常量。就抽空来学习了一下。


没有枚举

在没有枚举的时候,java编写是这样的。
public String jud(int i){  if(i==1){   return 1;  }else if(i==2){   return 2;  }}

可以通过调用jud()方法的形式,对 i 的值进行一个判断。但是这个样子写是非常不安全的。因为任何参数都可以进入到这个判断中。无形中,代码变得不怎么安全了。这个时候枚举就出来了。

枚举

首先创建一个枚举的类
public enum season{   a,b;}
这个就是创建了一个枚举类,当然  如果后面没有其他语句,封号可以不用。接着就是使用它啦。

public String jud(season s){  if(i==a){   return 1;  }else if(i==b){   return 2;  }}
把参数改成枚举的类,那么写进的参数,就不能是除了a和b以外的参数了。枚举在定义的时候,就已经决定了它的参数是什么。
但是有个例外,这里的参数可以是null。null可以进入方法,语句也不会报错,但是运行的时候会报空,这里就需要编写的时候注意了。

枚举的实例

枚举不能同对象一样,直接new出来是不行的。
season s =new season();//错误
正确的写法是通过枚举里的参数
season s=season.a
这样给枚举赋值。来改变它值。

枚举的方法

values():可以通过values()方法,来获得这个枚举的参数数组。
season[ ] s=season.values();
 
name():可以通过name()方法,来获得这个当前这个枚举的名字。可以通过for循环来尝试
season.name;

ordinal():可以通过values()方法,来获得当前这个枚举的值,是角标是多少   0位  1位  还是2位。
season.ordinal();

valueOf():可以通过valueOf(参数)方法,可以通过这个方法,查找参数在枚举中的角标是多少。
season i = season.valueOf(a);