当前位置: 网学 > 编程文档 > JAVA > 正文

JAVA综合--如何掌握JDK1.5枚举类型

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
 return "Color.Blue"; 
  default: 
   return "Unknow Color"; 
  } 
  } 
  …. 
  这时我们可以看到,此时再用前面的遍历代码打印出来的是 

  Color.Red 
  Color.Green 
  Color.Blue 

  而不是 

  Red 
  Green 
  Blue. 

  可以看到toString确实是被覆载了。一般来说在覆载toString的时候我们同时也应该覆载valueOf方法,以保持它们相互的一致性。 

  4.使用构造函数 

  虽然enum不可以有public的构造函数,但是我们还是可以定义private的构造函数,在enum内部使用。还是用Color这个例子。 

  public enum Color { 
  Red("This is Red"), 
  Green("This is Green"), 
  Blue("This is Blue"); 

  private String desc; 

  Color(String desc){ 
  this.desc = desc; 
  } 

  public String getDesc(){ 
  return this.desc; 
  } 

  } 

  这里我们为每一个颜色提供了一个说明信息, 然后定义了一个构造函数接受这个说明信息。 

  要注意这里构造函数不能为public或者protected, 从而保证构造函数只能在内部使用,客户代码不能new一个枚举值的实例出来。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 

  5.实现特定的接口 

  我们已经知道enum可以定义变量和方法,它要实现一个接口也和普通class实现一个接口一样,这里就不作示例了。 

  6.定义枚举值自己的方法。 

  前面我们看到可以为enum定义一些方法,其实我们甚至可以为每一个枚举值定义方法。这样,我们前面覆载 toString的例子可以被改写成这样。 

  public enum Color { 
  Red { 
  public String toString(){ 
   return "Color.Red"; 
  } 
  }, 
  Green { 
  public String toString(){ 
   return "Color.Green"; 
  } 
  }, 
  Blue{ 
  public String toString(){ 
   return "Color.Blue"; 
  } 
  }; 
  } 

  从逻辑上来说这样比原先提供一个“全局“的toString方法要清晰一些。 

  总的来说,enum作为一个全新定义的类型,是希望能够帮助程序员写出的代码更加简单易懂,个人觉得一般也不需要过多的使用enum的一些高级特性,否则就和简单易懂的初衷想违背了。 
 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号