当前位置: 代码迷 >> J2SE >> 看不懂的一个小程序,该怎么解决
  详细解决方案

看不懂的一个小程序,该怎么解决

热度:65   发布时间:2016-04-24 13:19:13.0
看不懂的一个小程序
package myjava;

public class Myclass
{
  public static void main(String[] args)
  {
  for(Spiciness s:Spiciness.values())
  {
  System.out.println(s+",ordinal "+s.ordinal());
  }
  }
}


enum Spiciness
{
  NOT, MILD, MEDIUM, HOT, FLAMING
}


Spiciness.values()这里values(),ordinal(),都是从哪来的,APi没查到,谁给讲讲

------解决方案--------------------
ordinal(),返回枚举常量的序数,初始序数为零,这是个final类型的方法!
------解决方案--------------------
我帮你下面加了个int数组的输出,int数组输出应该看得懂,给你对照了看下.Spiciness.values()对应数组m的集合,s.ordinal()返回int类型,输出的是序列.

Java code
public   class   Myclass {         public   static   void   main(String[]   args)         {                 for(Spiciness   s:Spiciness.values())                 {                         System.out.println(s+",ordinal   "+s.ordinal());                 }                 int[] m={1,2,3,4,5};                for(int i:m){                    System.out.println(i+", ");                }        } } enum   Spiciness {         NOT,   MILD,   MEDIUM,   HOT,   FLAMING }
------解决方案--------------------
拜托!不是有个类叫enum!而是有一个和类类似的东西叫enum!
enum是个关键字,不是一个类。
用enum定义的结构也会编译成.class文件,就像interface也会编译成.class文件一样。

enum定义好了以后可以像使用类一样来使用它,里面的成员相当于类的静态属性(但不能被改变),values()是enum固有的一个方法。
谁说一个方法一定要出现在类的定义中才可以使用??请问,你定义的哪个数组中有length这个属性?你不是一直在用它吗?
很多属性和方法是底层相关的,是编译器在编译的时候实现的。
  相关解决方案