java枚举
来源:互联网 发布:java一般放在哪里 编辑:程序博客网 时间:2024/05/16 23:42
1什么是枚举
先说什么是枚举之前,先了解一下单例模式,单例模式是什么呢,就是一个类只有一个实例对象。意味着你在任何时候要获得一个单例模式的类,所获得的对象都是相同的,那么单例模式如何实现呢?
单例模式的实现思想是这样的,你把一个类的构造方法声明为私有,然后在引用工厂模式,也就是通过类方法的形式把类的实例传递出去。
public class Single{ private Single(){ } private static Single single; public static Single getSingle(){ if(single==null){ single=new Single(); } return single; }}
好了这就是单例模式,然而并没有什么卵用。那么什么是枚举呢,枚举就是一个只有有限个实例。例如,一个星期只有7天。
public class Week{ public static Week MON=new Week(); public static Week TUE=new Week(); public static Week WED=new Week(); private Week(){ }}
枚举类的变形
上面的那个枚举类是最简单的,下面再介绍两种变形。
有参构造函数
public class Week2{ public static Week2 MON=new Week2("星期一"); public static Week2 TUE=new Week2("星期二"); public static Week2 WED=new Week2("星期三"); private String str; private Week2(String str){ this.str=str; }}
抽象方法,匿名内部类
这里public abstract class Week3{ public static Week3 MON=new Week3("星期一"){ public void show(){ System.out.println(str); } }; public static Week3 TUE=new Week3("星期二"){ public void show(){ System.out.println(str); } }; public static Week3 WED=new Week3("星期三"){ public void show(){ System.out.println(str); } }; String str; private Week3(String str){ this.str=str; } public abstract void show();}
枚举的官方关键字enum
通过enum将一个java类声明为枚举类型
以下为enum对应的枚举的三种实现
public enum EnuWeek { MON,TUE,WED;}
public enum EnumWeek2 { MON("星期一"),TUE("星期二"),WED("星期三"); private String str; private EnumWeek2(String str){ this.str=str; }}
public enum EnumWeek3 { MON(){ public void show(){ } }, TUE(){ public void show(){ } }, WED(){ public void show(){ } }; public abstract void show();}
0 0
- JAVA 枚举
- java枚举
- java枚举
- Java 枚举
- Java 枚举
- Java 枚举
- java 枚举
- java 枚举
- java枚举
- java枚举
- java枚举
- java枚举
- Java枚举
- java枚举
- java 枚举
- java枚举
- Java枚举
- Java枚举
- 红黑树的java实现
- #0
- prepareStatement用法和解释
- Error:Execution failed for task jdk1.8.0.25 exit with non zero exit value 2
- 贪心一练
- java枚举
- 深入理解java异常处理机制
- php 快速读取txt或文本
- C/C++动态自定义结构体数组实例锻炼-学生成绩排序
- Collections-sort
- jquery-ui出现Mismatching fragment identifier
- 一元多项式的相加 数据结构链表实现
- hdu 2571
- SQL中 decode()函数简介