目录
1、前言 2、源自一道面试题 3、枚举的由来 4、枚举的定义形式 5、Enum类里有啥?6、反编译枚举类
来源: cnblogs.com/summerday152/p/12347079.html
1、前言 本篇博客是对 JDK1.5的新特性枚举的一波小小的总结,主要是昨天在看一部分面试题的时候,遇到了枚举类型的题目,发现自己有许多细节还需要加强,做起来都模棱两可,是时候总结一波了。2、源自一道面试题 不多bb,直接开门见山,我遇到这样一道也许很简单的题目:enum AccountType{
SAVING, FIXED, CURRENT; private AccountType(){
System.out.println(“It is a account type”); }}class EnumOne{
public static void main(String[]args){
System.out.println(AccountType.FIXED); }}
问打印的结果是啥?正确答案如下:
It is a account typeIt is a account typeIt is a account typeFIXED
至于结果为啥是这个,且看我慢慢总结。3、枚举的由来
存在即合理。
我贼喜欢这句圣经,每次我一解释不了它为什么出现的时候,就不自觉地用上这句话。
枚举一定有他存在的价值,在一些时候,我们需要定义一个类,这个类中的对象是有限且固定的,比如我们一年有四个季节,春夏秋冬。
在枚举被支持之前,我们该如何定义这个Season类呢?可能会像下面这样:
public class Season {
//private修饰构造器,无法随意创建对象 private Season(){} //final修饰提供的对象在类外不能改变 public static final Season SPRING = new Season(); public static final Season SUMMER = new Season(); public static final Season AUTUMN = new Season(); public static final Season WINTER = new Season();}
在定义上,这个Season类可以完成我们的预期,它们各自代表一个实例,且不能被改变,外部也不能随便创建实例。
但&#x