您的位置:首页 > 编程语言 > Java开发

java之枚举类

2014-11-22 15:50 141 查看
 ------- android培训java培训、期待与您交流! ----------

枚举类:
在某些情况下,一个类的对象有限且固定,我们就可以定义成枚举类。
特点:私有的构造方法,这个类的实例对象都使用public static final修饰。
手动实现将一个普通类定义成枚举类:例如:季节,这个类一共有四个对象,春天夏天秋天冬天。
这个类的对象有限且固定。



当JDK1.5时增加了enum关键字,用于定义枚举类。正如我们上面的例子一样,枚举类也是一种类只不过比较特殊,它一样可以有自己的Field,方法,构造器。可以实现一个或者多个接口。
但是它与普通类的却别在于:
1,当使用enum关键字定义枚举类时,默认的继承了java.lang.Enum类,而不是继承Objec。其中java.lang.Enum实现了java.lang.Serializable和java.lang.Comparable类。
2,当使用enum关键字定义枚举类时,非抽象的枚举类会默认使用final修饰,因此这个枚举类不能派生子类。
3,构造方法必须私有化,如果省略访问修饰符,那么默认是private
4,枚举类的所有实例必须再枚举类的第一行列出来。系统会默认添加public sttic final修饰。
现在我们将上面的例子转变成用enum关键字定义的枚举类。



因为用enum关键字定义的枚举类继承了java.lang.Enum类,那么我们就可以使用Enum类中的方法。
int compareTo() 与指定对象比较顺序,如果该对象在指定对象之后返回正数,之前返回负数,否则返回0
String name() 返回枚举实例的名称。
int ordinal() 返回返回这个枚举实例,在枚举类的枚举值列表中的索引。  注意:第一个枚举值的索引为0
String toString() 作用于name方法相似,都是返回枚举值的名字,但这个方法更常用。
valueOf( name ) 这个方法是静态的,可以传入一个字符串找到这个枚举值的名字所对应的值。
values ()返回枚举类中的所有实例的数组。
实现接口的枚举类:







结果



带有抽象方法的枚举类:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: