枚举数据类型和枚举接口之间有任何区别.我在两者之间变得困惑.
我得到了我们的答案,他们没有关系,但是带给我另一个问题.
我们无法实例化界面.那么这条线的意义是甚么呢?
Enumeration days = dayNames.elements();
包含该行的完整代码
import java.util.Vector; import java.util.Enumeration; public class EnumerationTester { public static void main(String args[]) { Enumeration days; Vector dayNames = new Vector(); dayNames.add("Sunday"); dayNames.add("Monday"); dayNames.add("Tuesday"); dayNames.add("Wednesday"); dayNames.add("Thursday"); dayNames.add("Friday"); dayNames.add("Saturday"); days = dayNames.elements(); while (days.hasMoreElements()){ System.out.println(days.nextElement()); } } }
解决方法
Enumeration is an interface:实现枚举接口的对象生成一系列元素,一次一个.对nextElement方法的连续调用返回系列的连续元素.
例如,为了打印Vector< E>的所有元素,五:
for (Enumeration<E> e = v.elements(); e.hasMoreElements();) System.out.println(e.nextElement());
enum is a data type:枚举类型是一种特殊的数据类型,可以使变量成为一组预定义的常量.变量必须等于为其预定义的值之一.
例如,您将指定一个星期的枚举类型为:
public enum Day { SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY } public static void main(String[] args) { System.out.ptintln(Day.SUNDAY); // print SUNDAY }
你的第二个问题:
We cannot instantiate interface . So what is the significance of this
line
Enumeration days = dayNames.elements();
dayNames是一个Vector,一个集合就像List一样. (有差异,但这超出了问题的范围).但是,当调用daynames.elements()时,它返回向量日期的组件的枚举.返回的枚举对象将生成添加到此向量的所有项.生成的第一个项目是索引为0的项目,索引1处的项目等等.