3.枚举类型
来源:互联网 发布:易语言读取网页源码 编辑:程序博客网 时间:2024/06/13 04:06
/** *enum关键字表示枚举类型,它的作用相当于类声明中的class关键字 *枚举类型不能有public的构造方法 *所有的枚举值都是public、static、final的,这些修饰符都是自动加上,无须程序员手动添加 *枚举值之间用逗号","分开,最后一个枚举值后面接分号";" *每一个枚举值是一个枚举类型的实例 *可以在枚举类型中定义非枚举值变量,这些变量可以使用任何修饰符 *变量和方法的定义必须在枚举值后面定义 */ public class EnumType { /**人Person的枚举类型*/ enum Person{ CHINESE, //中国人 AMERICAN, //美国人 ENGLISH; //英国人 } public static void main(String[] args){ System.out.println("Person枚举值的数目: " + Person.values().length); //遍历枚举类型中的所有值 System.out.println("Person枚举值如下: "); Person[] ps = Person.values(); //values()方法返回Person类型的数组 for (Person p : ps){ System.out.print(p + " "); //toString()方法返回枚举值的名称,此处打印CHINESE AMERICAN ENGLISH } System.out.println(); Person p = Person.CHINESE; //比较枚举值 if(p == Person.CHINESE){ System.out.println("p' value equals Person.CHINESE"); } //使用valueOf获得字符串描述的枚举值 p = Person.valueOf("AMERICAN"); //在switch中使用枚举值 //switch中可以放置的类型有byte,short,int,char,enum,注意没有long switch(p){ case CHINESE: System.out.println("p is Chinese"); break; case AMERICAN: System.out.println("p is American"); break; case ENGLISH: System.out.println("p is English"); break; } //获得枚举值在枚举类型中声明的顺序 System.out.println("AMERICAN的序号: " + Person.AMERICAN.ordinal()); System.out.println("CHINESE的序号: " + Person.CHINESE.ordinal()); System.out.println("ENGLISH的序号: " + Person.ENGLISH.ordinal()); //使用更复杂的枚举类型ComplexPerson ComplexPerson cp = ComplexPerson.CHINESE; //因为为CHINESE枚举值覆盖了toString()方法,所以调用的是CHINESE的toString方法 System.out.println("cp.toString(): " + cp); cp = ComplexPerson.AMERICAN; //因为没有为AMERICAN枚举值覆盖toString方法,所以调用默认的toSting方法 cp = ComplexPerson.OTHER; System.out.println("cp.getValue(): " + cp.getValue()); } /**一个更复杂的枚举类型*/ enum ComplexPerson{ //枚举值 //CHINESE的value属性为"中国人" CHINESE("中国人"){ public String toString(){ return "这是个中国人"; } }, AMERICAN("美国 人"), ENGLISH("英国人"){ public String toString(){ return "这是个英国佬"; } }, OTHER{ public String toString(){ return "这是个其它国家的人"; } }; private String value = null; //枚举类值的value属性,只能声明在枚举值的后面 //默认的构造方法 ComplexPerson(){ value = "其他人"; } //带参数的构造方法 ComplexPerson(String value){ this.value = value; } //获取value属性 public String getValue(){ return this.value; } } }
- 3.枚举类型
- 3.枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 文件系统API
- 人脉经营全攻略
- 2005年百度之星程序设计大赛初赛试题与解答 第1题
- Google百度和谷歌的那些事
- ExecuteReader、ExecuteNonQuery、ExecuteScalar的区别
- 3.枚举类型
- [转]device_driver结构体(2.6.23)
- [转]linux中的结构体用法
- .Net Remoting安全性与实现
- 使用 .NET 远程处理访问其他应用程序域中的对象
- Linux C做的TCP文件传输的代码
- 寒假开始,今天在这里落脚了
- C++ primer 构造、析构、赋值测试
- 在MyEclipse8.5中安装SVN插件