温馨提示 :所有自定义的枚举类都默认继承 java.lang.Enum 类,本节内容结合 java.lang.Enum 类进行讲解,切勿混淆

  • 1、定义一个枚举类,枚举的实例定义必须是大写

  • 2、枚举类不可以 new 实例对象,因为自定义的枚举,都默认继承 Enum 类,且 Enum 类是抽象类,所以不可以产生实例

Enum 类

举个例子:

  • 3、switch 支持枚举类型

    执行结果

  • 4、Enum 类中的 ordinal 属性及相关方法


    举个例子:

  • 5、Enum 类中与 name 有关的方法
    name() 方法

    toString() 方法

    valueOf() 方法

    举个例子:

  • 6、Enum 类中的跟比较有关的方法
    equals() 方法

    compareTo() 方法

    举个例子:

  • 7、Enum 类中的其他方法
    getDeclaringClass() 方法

    举个例子:

  • 8、valus() 方法
    它的作用是 把枚举的属性,都变成一个数组;此方法在源码中并不存在,是编译器自己生成的静态方法
    举个例子:

  • 9、在 IDEA 创建一个枚举类

    **注意:**1、所有枚举类的构造函数必须是私有的,默认为私有的

    2、当给构造函数添加参数的时候,属性会报错,因为 RED、GREEN 等就是实例,必须给它们加参数

  • 10、枚举与反射


    在上面,明明刚创建了含有两个参数的私有构造函数,这里却报错,为什么呢?这里有一个面试题:
    普通类把构造函数私有化,虽然外部无法直接 new 对象,但依然可以通过反射访问该类私有构造函数生成对象。但是枚举的构造函数只能是私有的,得到这个构造函数之后,却不能通过 newInstance() 得到实例?

我们来打印所有的构造函数,看有没有两个参数的构造函数

发现有四参数构造函数,那我们就用反射访问一下四个参数的构造函数函数试试

结果是枚举通过反射根本 newInstance() 不出实例,可以看出用枚举去实现单例模式很安全

Constructor 中的 newInstance() 方法源码

Java -- 枚举相关推荐

  1. java 枚举的继承_java中枚举类可以被继承吗?

    java 枚举类 java中,使用关键字enum来定义枚举类,枚举类是一个特殊的类,大部分功能和普通类是一样的,区别为: ● 枚举类继承了java.lang.Enum类,而不是默认的Object类.而 ...

  2. Java枚举类使用方式

    Java枚举类使用方式 单枚举定义 : /*** * @title: 单枚举定义* @author: wll* @since: 2021-1-27 14:47:54*/ public enum Jud ...

  3. 比起睡觉,我更喜欢刷巨详细的Java枚举类,这是来自猿人的自觉呀

    零基础学习之Java枚举类 概述 JDK1.5之前 创建枚举类 代码示例 JDK1.5之后 创建枚举类 代码示例 枚举类继承父类 基本介绍 代码示例 枚举类实现接口 基本介绍 代码示例 枚举类实现单例 ...

  4. 你一定需要知道的高阶JAVA枚举特性!

    JAVA枚举,比你想象中功能还要强大! 我经常发现自己在Java中使用枚举来表示某个对象的一组值. 在编译时确定类型可以具有什么值的能力是一种强大的能力,它为代码提供了结构和意义. 当我第一次了解枚举 ...

  5. Java枚举原来还能这么用

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 前言 相信不少java开发者写过状态变更的业务,比如订单流程.请假流程等等.一般会搞一个状态 ...

  6. java 注解 enum_13 Java枚举和注解

    Java枚举 在某些情况下,一个类的对象是有限而且固定的.例如季节类,只能有 4 个对象. 当类的对象是有限时,就应该使用枚举,而不使用普通类.(枚举对象是单例模式) 枚举的属性 实现接口的枚举类 例 ...

  7. java 枚举(enum) 详细用法

    用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...

  8. Java 枚举:实现接口

    http://blog.csdn.net/veryitman/article/details/7945949 所有的枚举类都继承自 Enum,因为 Java 不支持多继承,所以枚举无法继承其它类. 但 ...

  9. java枚举使用详解

    http://www.cnblogs.com/linjiqin/archive/2011/02/11/1951632.html java枚举使用详解 在实际编程中,往往存在着这样的"数据集& ...

  10. 【转】Java 枚举7常见种用法

    原文网址:http://softbeta.iteye.com/blog/1185573 Java 枚举7常见种用法 博客分类: java java枚举enmu  原创地址:http://blog.li ...

最新文章

  1. linux crond命令
  2. 雨棚板弹性法计算简图_钢结构工程量计算、报价要点
  3. makemid+matlab,《MATLAB基础》双语课
  4. 【Manacher】【贪心】字符串连接(金牌导航 Manacher-4)
  5. 第二十期:核心交换机的链路聚合、冗余、堆叠、热备份
  6. python split函数 空格_Python随笔29:Python基础编程练习题23~24
  7. 《Python Cookbook 3rd》笔记(5.1):读写文本数据
  8. 正则表达式【第二卷】
  9. JavaScript中call,apply,bind方法的总结。
  10. 不应被忽视的医院终端安全建设
  11. HenCoder UI 部分 2-1 布局基础
  12. rpgmv存档修改html_使用HTML5存档网站内容更改
  13. HBuilderX搭建Vue项目
  14. 快速搜索Wox工具之Everything Service没有运行报错,解决办法!
  15. ftp服务器文件只读,ftp服务器只读
  16. 一维码识别技术与二维码识别技术
  17. UE4 C++基础回顾2
  18. 面阵相机行业研究分析报告
  19. Unity Shader UV动画之高光材质加上透明材质与UV动画
  20. mongodb重置密码

热门文章

  1. uni-app小程序优惠券镂空样式实现(完整代码!!!)
  2. EPSON L130X WIFI软件安装
  3. DA14580外设篇之定时器和PWM
  4. 【DBN分类】基于DBN实现变压器故障诊断附matlab代码
  5. python - excel文件操作
  6. Ubuntu 777权限的文件夹绿底蓝字更改
  7. Javaweb 短信接口
  8. 大二计算机期末考试题,大二计算机组成原理试题
  9. 多层感知机训练pima_indians_diabetes
  10. 深度学习常用数学知识