下面就是一个典型枚举类型的定义:

Java代码

Java代码

public enum Color{

RED,BLUE,BLACK,YELLOW,GREEN

}

显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类。

而这些类都是类库中Enum类的子类(java。lang。Enum)。它们继承了这个Enum中的许多有用的方法。我们对代码编译之后发现,编译器将enum类型单独编译成了一个字节码文件:Color。class。

Color字节码代码

final enum hr。

test。Color {

// 所有的枚举值都是类静态常量

public static final enum hr。test。Color RED;

public static final enum hr。test。Color BLUE;

public static final enum hr。

test。Color BLACK;

public static final enum hr。test。Color YELLOW;

public static final enum hr。test。Color GREEN;

private static final synthetic hr。

test。Color[] ENUM$VALUES;

// 初始化过程,对枚举类的所有枚举值对象进行第一次初始化

static {

0

new hr。test。Color [1]

3

dup

4

ldc [16] //把枚举值字符串"RED"压入操作数栈

6

iconst_0

// 把整型值0压入操作数栈

7

invokespecial hr。

test。Color(java。lang。String, int) [17] //调用Color类的私有构造器创建Color对象RED

10

putstatic hr。test。Color。RED : hr。test。Color [21]

//将枚举对象赋给Color的静态常量RED。

。。。。。。。。。

枚举对象BLUE等与上同

102

return

};

// 私有构造器,外部不可能动态创建一个枚举类对象(也就是不可能动态创建一个枚举值)。

private Color(java。lang。String arg0, int arg1){

// 调用父类Enum的受保护构造器创建一个枚举对象

3

invokespecial java。

lang。Enum(java。lang。String, int) [38]

};

public static hr。test。Color[] values();

// 实现Enum类的抽象方法

public static hr。test。

Color valueOf(java。lang。String arg0);

}

下面我们就详细介绍enum定义的枚举类的特征及其用法。(后面均用Color举例)

1、Color枚举类就是class,而且是一个不可以被继承的final类。

其枚举值(RED,BLUE。。。)都是Color类型的类静态常量, 我们可以通过下面的方式来得到Color枚举类的一个实例:

Color c=Color。RED;

注意:这些枚举值都是public static final的,也就是我们经常所定义的常量方式,因此枚举类中的枚举值最好全部大写。

全部

java什么是类枚举类_java枚举类型是什么?相关推荐

  1. java 枚举 注解_Java枚举类和注解梳理

    1. 枚举类 1. 枚举类的使用 枚举类的理解:类的对象只有有限个,确定的.我们称此类为枚举类. 当需要定义一组常量时,强烈建议使用枚举类. 如果枚举类中只有一个对象,则可以作为单例模式的实现方式. ...

  2. java 枚举 示例_Java枚举name()方法及示例

    java 枚举 示例 枚举类name()方法 (Enum Class name() method) name() method is available in java.lang package. n ...

  3. java 枚举 大小_Java枚举入门

    枚举类(掌握) 枚举的诞生历史(了解) 在服装行业,衣服的分类根据性别可以表示为三种情况:男装.女装.中性服装. private ? type: public void setType(? type) ...

  4. java获取枚举索引_Java枚举使用详解

    在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数 ...

  5. java 枚举 方法_Java枚举使用方法详解

    在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数 ...

  6. java枚举数字_Java 枚举 通过数字实例化枚举类型

    package com.zjl.domain.enumtype; /** * 枚举类 * * @Author zjl * @Date 2018/06/27 */ public enum EnumTyp ...

  7. java 枚举转换_Java 枚举与字符串的转换

    原标题:Java 枚举与字符串的转换 (点击上方公众号,可快速关注) 来源:xieyu_zy 链接:blog.csdn.net/xieyuooo/article/details/8483267 文章简 ...

  8. java枚举 数字_java 枚举

    Java中枚举的线程安全性及序列化问题 --枚举是如何保证线程安全的 要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和class一样,只是一个关键字 ...

  9. java 枚举父类_Java枚举

    java枚举 枚举类:类的对象只有限个.确定个 特殊的如果只有一个对象,就是单例模式 当需要定义一组常量时,强烈建议使用枚举类 jdk5.0之前 自定义枚举类 jdk5.0之后 enum定义 自定义枚 ...

  10. java 枚举 接口_java枚举接口

    java中的枚举类 枚举类(enum),与class和interface关键字地位相同. 枚举类是一个特殊的类,可以有自己的成员变量.方法.构造器,可以实现一个或多个接口.一个java源文件中只能有一 ...

最新文章

  1. pandas进行数据处理常用方法与属性
  2. java四行代码实现图片下载
  3. 2020-12-09 深度学习 经典CNN模型计算量与内存需求分析
  4. SQL Server 2012 Managed Service Account
  5. 玩JDK 12的Switch表达式
  6. 让MessageBox在最前面弹出来的信息在
  7. NLP的ImageNet时代已经到来
  8. “无法找到运行搜索助理需要的一个文件”的解决办法
  9. 计算机开机和关机的音乐,电脑开关机音乐设置
  10. 《统一沟通-微软-实战》-6-部署-7-部署移动功能-1
  11. 现代软件工程团队项目贝塔阶段_大规模测试结果_2018.02.08
  12. Linux 安装 VMware Player
  13. java正则表达式版本_java 正则表达式 版本号_java正则表达式?=.*_密码的正则表达式java...
  14. linux双系统默认进入win10,win10 linux 双系统 默认win10启动
  15. staruml 依赖于 libgcrypt11 (= 1.4.5);然而:未安装软件包 libgcrypt11。
  16. 爬虫项目3 - 股票数据爬取
  17. 汇编语言第4周学生总结反馈
  18. 小学计算机室行事周历,关于小学信息技术教案八篇
  19. 关键词(快排)刷词原理和方法
  20. 关于AttributeError: module ‘torch.nn‘ has no attribute ‘Moudle‘的解决方法

热门文章

  1. 【新手】关于使用C语言创建数组及其API
  2. java 天数计算日期_Java 计算日期间天数与日期推算等操作
  3. (2) Hive安装
  4. 利用简单的爬虫获取CV顶会论文
  5. SAP 采购发票校验
  6. 查看网络通不通的几种方法
  7. 《绿皮书》中的经典台词
  8. 我喜欢的郭敬明的文字
  9. 作UML图的软件有哪些
  10. HTML中表格怎么制作