黑马程序员技术交流社区

标题: 关于枚举类和switch综合 [打印本页]

作者: 黑马王振宇    时间: 2013-2-1 18:19
标题: 关于枚举类和switch综合
本帖最后由 张向辉 于 2013-2-3 11:46 编辑

自己没事练习,写下来这么一段代码
  1. public class Test {

  2.         public static void main(String[] args) {
  3.                 System.out.println(Week.Mon.show());
  4.                 System.out.println(Week.Wed.show());
  5.         }
  6. }

  7. enum Week{
  8.         Mon, Tue, Wed;
  9.         
  10.         public String show(){
  11.                 String s = null;
  12.                 switch(this){
  13.                         case Mon:
  14.                                 return "星期一";
  15.                         case Tue:
  16.                                 return "星期二";
  17.                         case Wed:
  18.                                 return "星期三";
  19.                                         }
  20.                 return s;
  21.         }
  22. }
复制代码
这是能在Eclipse下正确编译和运行的代码
但有几个小问题弄不明白:
1,switch语句()里边的表达式的值必须是整型或字符型(清华大学Java2实用教程第三版30页),但是这个this是什么?
2,为什么把String s = null和下边的return s去掉会出错呢?我已经在case里边return字符串了啊。。
3,按照我贴出来的程序,case里边return的语句return哪里去了?为什么?请指教。。
详细回答贡献金币3q
作者: Rancho_Gump    时间: 2013-2-1 18:58
本帖最后由 张向辉 于 2013-2-1 19:10 编辑

1,switch语句可以接收枚举类型,this代表枚举的实例
2,当switch内三个case,都有可能不被执行到,此方法需要一个返回值。于是添加return s;  之前需对s进行定义。
3,Mon.show()返回“星期一”,其他同理。如果枚举再添加一个对象,比如sun,而switch不做处理,返回s的值null




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