枚举和类的异同

Python014

枚举和类的异同,第1张

枚举是java 5新增了一个menu关键字(它与class、interface关键字的地位相同),用于定义枚举,枚举是一种特殊的类,它一样有自己的Fileld、方法,可以实现一个或多个接口,也可以定义自己的构造器。一个java源文件中最多只能定义一个public访问权限的枚举类,且该java源文件也必须和枚举类的类名相同。但枚举毕竟不是普通的java类,它与普通类有如下简单的区别:

1、枚举类可以实现一个活多个接口,使用menu定义的枚举直接继承了java.long.Enum类,而不是继承Object类。其中java.long.Enum类实现了java.long.Serializable和java.long.Comparable两个接口。

2、使用enum定义、非抽象的枚举默认修饰符为final,因此枚举不能派生子类。

3、枚举的构造器只能使用private访问控制符,如果省略了枚举的访问修饰符其默认为private修饰;如果加强制定访问修饰符则只能使用private。

4、枚举的所有实例必须在枚举的第一行显示列出,否则这个枚举永远都不能生产实例,列出这些实例时系统会自动添加public static final修饰,无需程序员显式添加

5、所有的枚举类都提供了一个values方法,该方法可以很方便的遍历所有的枚举值

每个问题只有对、错2种情况的话,每个问题相当于1个bit。

10个问题就是10个bit

循环从0到0b11111 11111,逐个打印数字

即从0到1023循环

for(int i=0i<1024i++){

System.out.println(i)//每个i保留10个bit,这10个bit的每个bit就代表每个问题的对错

}

比如

1000这个值,二进制为1111101000

可以理解成“对对对对对错对错错错”

0理解成00000 00000,代表全错

1023理解成11111 11111代表全对

从0到1023就是所有的可能

这是最高效节省的表示法。

InitParameter是在web.xml中配置的Servlet初始参数,采用:

<init-param></init-param>形式写入。

Enumeration是一个枚举接口,遍历枚举就能得到init-param参数名称,如:

while

(enums.hasMoreElements

())

{

String

paramName

=

(String)

enums.nextElement

()

String

paramValue

=

getInitParameterValue

(paramName)

...

other

process

here..

}