java枚举题目_Java:枚举类也就这么回事

一、前言

本篇博客是对JDK1.5的新特性枚举的一波小小的总结,主要是昨天在看一部分面试题的时候,遇到了枚举类型的题目,发现自己有许多细节还需要加强,做起来都模棱两可,是时候总结一波了。

二、源自一道面试题

不多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 type

It is a account type

It is a account type

FIXED

至于结果为啥是这个,且看我慢慢总结。

三、枚举的由来

存在即合理。

我贼喜欢这句圣经,每次我一解释不了它为什么出现的时候,就不自觉地用上这句话。

枚举一定有他存在的价值,在一些时候,我们需要定义一个类,这个类中的对象是有限且固定的,比如我们一年有四个季节,春夏秋冬。

在枚举被支持之前,我们该如何定义这个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类可以完成我们的预期,它们各自代表一个实例,且不能被改变,外部也不能随便创建实例。

但,通过自定义类实现枚举的效果有个显著的问题:代码量非常大。

于是,JDK1.5,枚举类应运而生。<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值