java入门学习(13)—枚举类定义及使用初步

来源:互联网 发布:域名301重定向新网 编辑:程序博客网 时间:2024/06/06 05:46

1、什么是枚举类?

      枚举类是一种实例是已知而且固定的类。

2、如何定义一个枚举类型?以及初步使用?

语法:【修饰符】 enum 枚举名

{

//必须要在第一行立刻列出所有的枚举实例【其实是在调用无参数的构造器创建实例

          //属性【一般设置成private修饰的,不让别人随意修改】

        //方法【方法可以抽象方法,然后在列出所有实例的时候用匿名类的方式,重写这个方法】

        //构造器【只能是私有的,private修饰,因为实例已经固定,不能再随意创建】

        //初始化块

        //内部类

}

代码示例:

//模拟一个算术运算public enum OPeration{//列出所有实例,所有可能的实例(<strong>如果是普通方法,则应该写成:PLUS,SUB;</strong>)<strong>//实际是创建实例,相当于调用无参数的构造器创建实例MALE(),如果没有无参数的构造器的话要传入相应的参数</strong>//但是当枚举类是抽象类的时候,不能创建实例//这时需要立即创建匿名内部类的实例PLUS(){//匿名内部类需要重写抽象方法public  double eval(double x,double y){return x+y;}},//注意此处是逗号SUB(){public  double eval(double x,double y){return x*y;}};//如果已经有抽象方法,则枚举类就默认有abstract修饰。//此时该枚举类没有final修饰public abstract double eval(double x,double y);public static void main(String [] args){System.out.println(OPeration.PLUS.eval(2.3,5.6));}}

3、实现接口的枚举类?

[语法】:【修饰符】 enum 枚举类名 implements 父接口  {  实现类体 }

a、枚举类也可以实现一个或多个接口。

1、实现接口包含的所有抽象方法,此时的枚举是普通的枚举。

2、如果没有全部实现抽象方法,则在列出的枚举实例的时候要用到匿名类,并重写没有重写的抽象方法。

4、【注意点】

a、枚举类型都有一个value()方法,该方法返回所有的枚举实例。

b、在枚举类的类体力列出的实例中,前面的实例小,后面的大。

c、包含抽象方法的枚举类不用abstract显式的修饰,系统默认就是抽象的枚举类。

d、枚举类可以实现一个或者多个接口,但是默认继承的是java.lang.Enum类,而Object类是间接父类。

e、构造器只能是private修饰。

f、实例必须再第一行列出,默认添加了public static  final  当含有抽象方法时,应该用匿名类重写抽象方法。

5、常用方法:

a、int compareTo();比较,在前返回负值,在后返回正值。

b.、String  name():返回枚举的实例名称。

c、int ordinal();返回枚举实例所在的下标。



/


5


0 0
原创粉丝点击