枚举的本质是类,枚举是用来构建常量数据结构的模板(初学者可以以此方式理解: public static final X=xxx),枚举的使用增强了程序的健壮性,在引用一个不存在的枚举值的时候,编译器会报错。

案例1:  

  1. public enum Grade {
  2. A,B,C,D
  3. }
  1. public class Test {
  2. public static void main(String[] args) {
  3. System.out.println(Grade.A);
  4. System.out.println(Grade.B);
  5. System.out.println(Grade.C);
  6. System.out.println(Grade.D);
  7. }
  8. }

结果输出: 

  A   B  C  D

案例2:

  1. public enum Grade {
  2. A("81-100"),B("71-80"),C("61-70"),D("0-60");
  3. private String value;
  4. private Grade(String value){
  5. this.value=value;
  6. }
  7. public String getValue(){
  8. return this.value;
  9. }
  10. }
  1. public class Test {
  2. public static void main(String[] args) {
  3. System.out.println(Grade.A);
  4. System.out.println(Grade.A.getValue());
  5. System.out.println(Grade.B);
  6. System.out.println(Grade.B.getValue());
  7. System.out.println(Grade.C);
  8. System.out.println(Grade.C.getValue());
  9. System.out.println(Grade.D);
  10. System.out.println(Grade.D.getValue());
  11. }
  12. }
  1.  

结果:

  A 81-100 B 71-80 C 61-70 D 0-60

案例3:

  1. public enum Grade {
  2.  
  3. A("81-100") {
  4. @Override
  5. public String toLocalString() {
  6. return "优";
  7. }
  8. },B("71-80") {
  9. @Override
  10. public String toLocalString() {
  11. return "良";
  12. }
  13. },C("61-70") {
  14. @Override
  15. public String toLocalString() {
  16. return "中";
  17. }
  18. },D("0-60") {
  19. @Override
  20. public String toLocalString() {
  21. return "差";
  22. }
  23. };
  24.  
  25. private String value;
  26.  
  27. private Grade(String value){
  28. this.value=value;
  29. }
  30.  
  31. public String getValue(){
  32. return this.value;
  33. }
  34.  
  35. public abstract String toLocalString();
  36. }
  1. public class Test {
  2.  
  3. public static void main(String[] args) {
  4.  
  5. System.out.println(Grade.A);
  6. System.out.println(Grade.A.getValue());
  7. System.out.println(Grade.A.toLocalString());
  8. System.out.println(Grade.B);
  9. System.out.println(Grade.B.getValue());
  10. System.out.println(Grade.B.toLocalString());
  11. System.out.println(Grade.C);
  12. System.out.println(Grade.C.getValue());
  13. System.out.println(Grade.C.toLocalString());
  14. System.out.println(Grade.D);
  15. System.out.println(Grade.D.getValue());
  16. System.out.println(Grade.D.toLocalString());
  17.  
  18. }
  19.  
  20. }

结果:

  A 81-100 优 B 71-80 良 C 61-70 中 D 0-60 差

java枚举详解的更多相关文章

  1. Java 枚举详解

    为什么要用枚举 在博客系统中,一篇文章有且可能有这几种状态, 数据库中article文章表中state字段存储数值,表示其状态: 0(已发表Published) 1(草稿Draft) 2(撤回撤回(D ...

  2. Java Annotation详解 理解和使用Annotation

    系统中用到了java注解: 查了一下如何使用注解,到底注解是什么: (1)创建方法:MsgTrace Java Class==> 在Create New Class中: name:输入MsgTr ...

  3. Java IO 详解

    Java IO 详解 初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正, ...

  4. java关键字(详解)

    目录 1. 基本类型 1) boolean 布尔型 2) byte 字节型 3) char 字符型 4) double 双精度 5) float 浮点 6) int 整型 7) long 长整型 8) ...

  5. Java集合详解3:Iterator,fail-fast机制与比较器

    Java集合详解3:Iterator,fail-fast机制与比较器 今天我们来探索一下LIterator,fail-fast机制与比较器的源码. 具体代码在我的GitHub中可以找到 https:/ ...

  6. Java集合详解3:一文读懂Iterator,fail-fast机制与比较器

    <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...

  7. Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理

    本文非常详尽地介绍了Java中的三个集合类 ArrayList,Vector与Stack <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整 ...

  8. 9种Java单例模式详解(推荐)

    单例模式的特点 一个类只允许产生一个实例化对象. 单例类构造方法私有化,不允许外部创建对象. 单例类向外提供静态方法,调用方法返回内部创建的实例化对象.  懒汉式(线程不安全) 其主要表现在单例类在外 ...

  9. Java内部类详解

    Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...

随机推荐

  1. 搭建DHCP服务实现动态分配IP地址-NTP网络时间同步

    本节所讲内容: DHCP服务器工作原理 使用DHCP为局域网中的机器分配IP地址 使用DHCP为服务器分配固定IP地址 ntpdate加计划任务同步服务器时间   实验环境: 服务端:xuegod63 ...

  2. python-类对象的比较

    #类对象的比较 class Person: def __init__(self,age,height): self.age=age self.height=height def __eq__(self ...

  3. Kibana后台进程启动和关闭

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/12073202.html 后台启动Kibana ./bin/kibana & 查找Kibana进 ...

  4. react native之封装离线缓存框架

    请求数据=>本地有无缓存+缓存数据是否过期 =>可用 =>不可用 将代码封装成一个DataStore.js文件, 这里面主要提供:从本地获取数据,从网络获取数据,创建本地时间戳,请求 ...

  5. asp.net能否上传文件夹下所有文件

    HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...

  6. HDU 1002 A - A + B Problem II (大数问题)

    原题代号:HDU 1002 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 原题描述: Problem Description I have a ...

  7. android平台上AES,DES加解密及问题

    在使用java进行AES加密的时候,会用到如下方法: SecureRandom sr = SecureRandom.getInstance("SHA1PRNG"); 但是在andr ...

  8. [BZOJ2822]:[AHOI2012]树屋阶梯(卡特兰数)

    题目传送门 题目描述 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营.小龙分配的树屋建立在一颗高度为N ...

  9. 原生javascript兼容性总结

    1.addEventListener() :方法用于向指定元素添加事件句柄.// Internet Explorer 8 及更早IE版本不支持,Opera 7.0 及 Opera 更早版本也不支持. ...

  10. 对象数组(JSON) 根据某个共同字段 分组

    1.在前端页面用js处理 转载https://www.cnblogs.com/rysinal/p/5834446.html 为了第二种方法对比,特意把id 转化为pid var arr = [ {&q ...