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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马王振宇 中级黑马   /  2013-2-1 18:19  /  1313 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张向辉 于 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

1 个回复

倒序浏览
本帖最后由 张向辉 于 2013-2-1 19:10 编辑

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