黑马程序员技术交流社区

标题: 银行业务调度系统中的一个疑问 [打印本页]

作者: 段浩亮    时间: 2012-3-19 14:46
标题: 银行业务调度系统中的一个疑问
定义顾客类型的源码是这样的:
public enum CustomerType {
        COMMON,EXPRESS,VIP;
        public String toString(){
                String name = null;
                switch(this){
                case COMMON:
                        name = "普通";
                        break;
                case EXPRESS:
                        name = "快速";
                        break;
                case VIP:
                        name = name();
                        break;
                }
                return name;
        }
}
我想问的是switch(a){}  a的类型不是只能是byte,short,int,char四种类型吗?为什么在这里可以接受枚举类型?
作者: 李涛涛    时间: 2012-3-19 14:51
switch(a) 要接受的是常量,而 枚举类型中定义的类型就是常量
作者: 周建    时间: 2012-3-19 15:55
这是Java5的新特性,Java5之后switch()可以接受枚举类型了
作者: 张润政    时间: 2012-3-19 18:14
枚举,本来是C++中的元老,java本来是没有这些东西的,可是后来为了完善java的API架构,更方便的让我们使用java开放程序,又加入了枚举,它使得程序提高了安全性,也简化了书写。
至于为什么能够接收枚举,这也是因为枚举成为了固定取值的对象,switch能够接收这样的参数也是将枚举拉入java阵营的需要啊。
其实,将枚举应用于switch就是一个固定的应用。
作者: 盛亚昆    时间: 2012-3-19 21:37
switch后只能用byte,short,int,char,jdk5.0以后,还可以用枚举类型,这是java的规范




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