面试题解析:1 Java中switch语句可以作用在enum上的测试
enum是java中的枚举,其实枚举是一个常量,枚举就是定义枚举类的一个实例。
定义枚举的时候,应该注意一下几个问题:
其构造方法应该是private 的,为什么呢?根据我的理解,应为枚举是个常量,枚举的意思就是有限的可以列举的几个选项,如果其构造方法可以是public的,那么就违背了枚举的初衷,所以,枚举的构造方法是private的
另外,枚举的选项都应该是枚举的第一行出现
详见示例:
package com.luzhiming.test_6_11; /** * @author 鲁志明 E-mail: 13688601037@139.com * @version 创建时间:2013-6-11 下午10:50:34 * */ public enum MyEnum { ZHANGSAN(1,"zhansang"),LISI(2,"lisi"),WANGWU(3,"wangwu"); private MyEnum(int age , String name) { this.age = age ; this.name = name; } private int age; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
swith语句能够作用在byte,short,char上面,因为这些数据类型都可以隐含的转换为int类型,另外switch还可以作用在枚举常量上面。
示例:
package com.luzhiming.test_6_11; public class Page9Number5 { public static void useEnum(MyEnum enumType) { switch(enumType) { case LISI: System.out.println("LISI的名字是:"+ enumType.getName()); return; case WANGWU: System.out.println("WANGWU的名字是:" + MyEnum.WANGWU.getName()); return; default: System.out.println("this is default"); return; } } public static void main(String[] args) { useEnum(MyEnum.LISI); useEnum(MyEnum.WANGWU); // 运行 default 语句 useEnum(MyEnum.ZHANGSAN); } }