黑马程序员技术交流社区

标题: 关于枚举的一个小问题。 [打印本页]

作者: 刘晓GGG    时间: 2013-6-2 23:51
标题: 关于枚举的一个小问题。
  1. enum Gender
  2. {       
  3.         MAN(),WOMAN{},NONE(){} ;
  4.         private Gender(){}
  5.        
  6.         public String toString()
  7.         {
  8.                 String ret = super.toString();
  9.                 switch(this)
  10.                 {
  11.                         case MAN:
  12.                                 ret = "男";
  13.                         break;
  14.                        
  15.                         case WOMAN:
  16.                                 ret = "girl";
  17.                         break;
  18.                        
  19.                         default:
  20.                                 ret = "保密";
  21.                 }
  22.                 return ret;
  23.         }

  24. }
复制代码
问题:switch的参数里,为什么能传一个this进去?this是本类对象的引用,具体的引用是怎么指向的?switch不就只能支持那几种基本数据类型和String类型吗?



作者: java.exe    时间: 2013-6-3 00:30
在java1.5以前,switch操作仅能对int、short、char和byte进行操作。而在1.5中,switch增加了对枚举类型的支持,因为枚举类型仅含有有限个可以使用整数代替的枚举常量,这太适合使用switch语句了!就像你写的代码中那样,你在swtich表达式中放置枚举类型变量,就可以在case标示中直接使用枚举类型中的枚举常量了
作者: 火之意志    时间: 2013-6-3 07:17
同意楼上的说法,现在jdk可以int,byte,short,char,string,枚举了
作者: 袁梦希    时间: 2013-6-12 18:33
楼主你好  如果问题已经解决  请把帖子的类型改为已解决  然后会给你发几个粽子吃




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