黑马程序员技术交流社区
标题:
关于枚举类和switch综合
[打印本页]
作者:
黑马王振宇
时间:
2013-2-1 18:19
标题:
关于枚举类和switch综合
本帖最后由 张向辉 于 2013-2-3 11:46 编辑
自己没事练习,写下来这么一段代码
public class Test {
public static void main(String[] args) {
System.out.println(Week.Mon.show());
System.out.println(Week.Wed.show());
}
}
enum Week{
Mon, Tue, Wed;
public String show(){
String s = null;
switch(this){
case Mon:
return "星期一";
case Tue:
return "星期二";
case Wed:
return "星期三";
}
return s;
}
}
复制代码
这是能在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