java枚举基础及使用
2015-08-17 20:03
483 查看
java枚举实现
本程序利用枚举表示了一个人的性别,这样做的好处是限定了性别对象的适用范围,但是读者也可以发现,即使本程序不适用枚举也可以实现对应功能,所以对于开发而言,如果已经习惯使用枚举的可以继续使用,如果不习惯使用,就建议使用自己习惯的方法。
package enumeration; /* * 1.5以前 */ class Color{ private static final Color RED = new Color("红色"); private static final Color GREEN = new Color("绿色"); private static final Color BLUE = new Color("蓝色"); private String title; private Color(String title){ this.title=title; } public String toString(){ return this.title; } public static Color getlnstance(int ch){ switch(ch){ case 0: return RED; case 1: return GREEN; case 2: return BLUE; default: return null; } } } /* * 1.5以后,枚举使用enum关键字来进行定义 */ enum Color2{ RED,GREEN,BLUE; } public class enumeration_basic { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Color c = Color.getlnstance(0); System.out.println(c.toString()); //新特性 Color2 c2 = Color2.RED; System.out.println(c2); // public final int ordinal();获得枚举的序号 // public final String name();获得美剧的名称 for(Color2 c3:Color2.values()) { System.out.println(c3.ordinal()+", "+c3.name()); } } }<span style="color:#ff0000;">输出:红色 RED 0, RED 1, GREEN 2, BLUE</span>java枚举的应用例子
package enumeration; /* * */ enum Sex{ MALE("男"),FEMALE("女"); //定义枚举对象(此时调用构造方法) private String title; private Sex(String title) //构造方法私有化 { this.title = title; } public String toString() { return this.title; } } /* * Person 定义一个人类 */ class Person { private String name; private int age; private Sex sex; public Person(String name,int age,Sex sex) { this.age = age; this.name = name; this.sex = sex; } public String toString(){ return "姓名:" + this.name +",年龄:"+ this.age +",性别:" + this.sex; } } public class enumeration_using { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Person per = new Person("张珊",20,Sex.FEMALE); System.out.println(per); } }<span style="color:#ff0000;">输出:姓名:张珊,年龄:20,性别:女</span>
本程序利用枚举表示了一个人的性别,这样做的好处是限定了性别对象的适用范围,但是读者也可以发现,即使本程序不适用枚举也可以实现对应功能,所以对于开发而言,如果已经习惯使用枚举的可以继续使用,如果不习惯使用,就建议使用自己习惯的方法。
相关文章推荐
- Java反射破坏单例模式
- 浅谈Java反射机制
- Spring---AOP原理浅析
- Java web学习路线
- Java初级培训笔记------容器 (4)
- JAVA数组的两种常见排序(冒泡排序和选择排序)
- Java文件切割与合并二之File开道
- Java____泛型
- 约瑟夫环问题
- CloudStack SSVM的Java process not running的解决方法
- 安装Spring Ide
- [Java Concurrency in Practice]二至五章小结
- 每日五道题(struts2)
- Eclipse中SVN的安装步骤(两种)和使用方法
- [Java Concurrency in Practice]第五章 基础构建模块
- myeclipse通过jdbc 连接mysql数据库
- Java中Integer直接比较大小
- Java序列化及反序列化 示例讲解
- JAVA多线程 问题 转载
- JAVA之JDBC简单事务处理