枚举和枚举之间的区别

2022-09-02 23:22:10

数据类型和接口之间有什么区别吗?我在两者之间变得困惑。enumEnumeration

我得到的答案是它们不相关,但这又把我带到了另一个问题。

我们无法实例化 界面 。那么这条线的意义何在?

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()); 
      }
   }
}

答案 1

枚举是一个接口:实现接口的对象生成一系列元素,一次一个。对该方法的连续调用将返回该系列的连续元素。EnumerationnextElement

例如,要打印 的所有元素:Vector<E> v

for (Enumeration<E> e = v.elements(); e.hasMoreElements();)
       System.out.println(e.nextElement());

枚举是一种数据类型:枚举类型是一种特殊的数据类型,它使变量能够成为一组预定义的常量。该变量必须等于为其预定义的值之一。

例如,您可以将星期几类型指定为:enum

 public enum Day {
        SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
        THURSDAY, FRIDAY, SATURDAY 
    }

   public static void main(String[] args)
  {
     System.out.ptintln(Day.SUNDAY);  // print SUNDAY
  }

你的第二个问题:

我们无法实例化 界面 。那么这条线的意义何在?

Enumeration days = dayNames.elements();

dayNames是一个,一个集合,就像 .(存在差异,但这超出了问题的范围。但是,当调用 时,它将返回 vector 的分量枚举。返回的枚举对象将生成添加到此向量的所有项。生成的第一个项目是 处的项,然后是 处的项,依此类推。VectorListdaynames.elements()daynamesindex 0index 1


答案 2

简而言之,是遗留的,是一种数据类型。EnumerationIteratorEnum