java什么是类枚举类_java枚举类型是什么?
下面就是一个典型枚举类型的定义:
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枚举类型是什么?相关推荐
- java 枚举 注解_Java枚举类和注解梳理
1. 枚举类 1. 枚举类的使用 枚举类的理解:类的对象只有有限个,确定的.我们称此类为枚举类. 当需要定义一组常量时,强烈建议使用枚举类. 如果枚举类中只有一个对象,则可以作为单例模式的实现方式. ...
- java 枚举 示例_Java枚举name()方法及示例
java 枚举 示例 枚举类name()方法 (Enum Class name() method) name() method is available in java.lang package. n ...
- java 枚举 大小_Java枚举入门
枚举类(掌握) 枚举的诞生历史(了解) 在服装行业,衣服的分类根据性别可以表示为三种情况:男装.女装.中性服装. private ? type: public void setType(? type) ...
- java获取枚举索引_Java枚举使用详解
在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数 ...
- java 枚举 方法_Java枚举使用方法详解
在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数 ...
- java枚举数字_Java 枚举 通过数字实例化枚举类型
package com.zjl.domain.enumtype; /** * 枚举类 * * @Author zjl * @Date 2018/06/27 */ public enum EnumTyp ...
- java 枚举转换_Java 枚举与字符串的转换
原标题:Java 枚举与字符串的转换 (点击上方公众号,可快速关注) 来源:xieyu_zy 链接:blog.csdn.net/xieyuooo/article/details/8483267 文章简 ...
- java枚举 数字_java 枚举
Java中枚举的线程安全性及序列化问题 --枚举是如何保证线程安全的 要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和class一样,只是一个关键字 ...
- java 枚举父类_Java枚举
java枚举 枚举类:类的对象只有限个.确定个 特殊的如果只有一个对象,就是单例模式 当需要定义一组常量时,强烈建议使用枚举类 jdk5.0之前 自定义枚举类 jdk5.0之后 enum定义 自定义枚 ...
- java 枚举 接口_java枚举接口
java中的枚举类 枚举类(enum),与class和interface关键字地位相同. 枚举类是一个特殊的类,可以有自己的成员变量.方法.构造器,可以实现一个或多个接口.一个java源文件中只能有一 ...
最新文章
- pandas进行数据处理常用方法与属性
- java四行代码实现图片下载
- 2020-12-09 深度学习 经典CNN模型计算量与内存需求分析
- SQL Server 2012 Managed Service Account
- 玩JDK 12的Switch表达式
- 让MessageBox在最前面弹出来的信息在
- NLP的ImageNet时代已经到来
- “无法找到运行搜索助理需要的一个文件”的解决办法
- 计算机开机和关机的音乐,电脑开关机音乐设置
- 《统一沟通-微软-实战》-6-部署-7-部署移动功能-1
- 现代软件工程团队项目贝塔阶段_大规模测试结果_2018.02.08
- Linux 安装 VMware Player
- java正则表达式版本_java 正则表达式 版本号_java正则表达式?=.*_密码的正则表达式java...
- linux双系统默认进入win10,win10 linux 双系统 默认win10启动
- staruml 依赖于 libgcrypt11 (= 1.4.5);然而:未安装软件包 libgcrypt11。
- 爬虫项目3 - 股票数据爬取
- 汇编语言第4周学生总结反馈
- 小学计算机室行事周历,关于小学信息技术教案八篇
- 关键词(快排)刷词原理和方法
- 关于AttributeError: module ‘torch.nn‘ has no attribute ‘Moudle‘的解决方法