A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨静 中级黑马   /  2012-10-16 22:08  /  891 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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方法来为枚举实例生成不同的字符串描述信息。

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马