黑马程序员技术交流社区

标题: 枚举基础 [打印本页]

作者: 杨静    时间: 2012-10-16 22:08
标题: 枚举基础
enum Word{A("I am the first one inthe world"),
B("we can see you "),
C("we thin k");
private String des;
private Word(String des){
  this.des=des;
}
public String getDes(){return des;}
}
public class EnumClass {
/**
  * enum实现了Serializable和Comparable接口不可以继承
  * @param args
  */
public static void main(String[] args) {
  for(Word w:Word.values()){
   System.out.println(w+"ordinal"+w.ordinal());
   System.out.println(w.compareTo(Word.A));
   System.out.println(w.equals(Word.A));
   System.out.println(w==Word.A);
   System.out.println(w.getDeclaringClass());//知道所属的类
   System.out.println(w.name()+"  ****"+w.getDes());
   System.out.println("------------------");
   
  }
  for(String s:"A B C".split(" ")){
   Word word=Enum.valueOf(Word.class,s);
   //是在Enum中定义的static方法,根据给定的名字返回相应的enum实例
   System.out.println(word);
   System.out.println(word.getDes());
  }
}
}
在上面的程序中每个枚举实例能够返回对自身的描述。在此是通过提供一个构造器来专门处理这个额外的信息,然后添加一个方法返回描述的信息。另外如果定义自己的方法,那么在enum实例序列的最后添加一个分号。另外在java中必须先定义enum实例。
另外我们还可以通过覆盖toString方法来为枚举实例生成不同的字符串描述信息。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2