枚举(enum 类)|学习笔记

简介: 快速学习 枚举(enum 类)

开发者学堂课程【【名师课堂】Java 高级开发枚举(enum 类) 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/372/detail/4542


枚举(enum 类)


内容简介

一、Enum 类

二、enum 和 Enum 的区别?

 

一、Enum 类

虽 然 JDK1.5 提供有 enum 关键字,但是 enum 并不是一种新的结构,相反,它只是对一种类型的包装:

使用 enum 关键字定义的枚举类本质上就相当于一 class 定义的类继承了java.lang.Enum 父类。

父类是:

打开 Java 找到 Java.lang  找到 e num 打开:

Class Enum<E extends Enum<E>>

java.lang.Object

java.lang.Enum<E>

Type Parameters:

E- The enum type subclass

All lmplementec lnterfaces:

Serializable. comparable<E>

<E extends Enum<E>>  首先 E 设置了泛型的上线必须是 extends Enum 继承自<E> ,这个地方能存的就是一个枚举。

在 Enum 类里面有以下的方法:

l 构造方法:protected Enum(String name, int ordinal);

l 取得枚举名字:public final String name()

l 取得枚举的序号:public final int ordinal()

范例:观察方法的使用

package cn.mldn. demo;

enum Color {

RED,GREEN,BLUE ;

}

public class TestDemo {

public static void main(string[ ]args) {

system.out.print1n(color.RED);

}

在此基础上 System. out . println(Color.RED) ; 跟上序号 ordinal()+”=”再加上Color.RED.name()

System.out.println(Color.RE,ordinal()+”=”+ Color.RED.name()) 执行出现:

0=RED

如果把 green 放在前边执行出现:1=RED

所以:构造方法:protected Enum(String name, int ordinal);是当定义枚举类中对象的时候自动设置序号和名字;

在枚举操作里面还有一个方法可以取得所有的枚举数据:values() 返回的是一个枚举的对象数组;

范例:取得所有的枚举数据

package cn.mldn. demo;

enum Color {

RED,GREEN,BLUE ;

}

public class TestDemo {

public static void main(string[ ]args) {

system.out.print1n(color.RED);

}

在上述基础上写入 for(Color temp:Color values()) 返回的是一个对象数组,后边跟上 temp,如图:

package cn.mldn.demo;

enum color {

RED,GREEN,BLUE ;

}

public class TestDemo {

public static void main(string[ ] args) {

for (color temp : color.values()){

system.out.println(temp.ordinal() + "= " + temp.name());

}

执行出现:

0=RED

1=GREEN

2=BLUE

所以这个功能是多例本身不具备的,枚举与多例模式最大的区别就是 values

 

二、enum 和 Enum 的区别?

面试题:请解释 enum 和 Enum 的区别?

enum 是一个关键字,使用 enum  定义的枚举类本质上相当于一个类继承了 Enum这个抽象类。

相关文章
|
10月前
|
SQL 数据可视化 BI
VeryReport和FineReport两款报表软件深度分析对比
VeryReport和FineReport两款报表软件深度分析对比
|
8月前
|
jenkins 测试技术 Shell
利用Apipost轻松实现用户充值系统的API自动化测试
API在现代软件开发中扮演着连接不同系统与模块的关键角色,其测试的重要性日益凸显。传统API测试面临效率低、覆盖率不足及难以融入自动化工作流等问题。Apipost提供了一站式API自动化测试解决方案,支持零代码拖拽编排、全场景覆盖,并可无缝集成CI/CD流程。通过可视化界面,研发与测试人员可基于同一数据源协作,大幅提升效率。同时,Apipost支持动态数据提取、性能压测等功能,满足复杂测试需求。文档还以用户充值系统为例,详细介绍了从创建测试用例到生成报告的全流程,帮助用户快速上手并提升测试质量。
|
10月前
|
运维 监控 安全
代理IP故障排查,怎样快速锁定问题?
在信息化时代,互联网不可或缺,业务需求使HTTP动态代理IP的应用日益广泛。为快速排查代理IP故障,可采取以下步骤:1. 检查代理IP有效性(Ping测试、HTTP请求测试);2. 监控连接速度(延迟、带宽测试);3. 分析错误信息(HTTP状态码、错误日志);4. 检查代理设置(配置文件、协议支持);5. 使用调试工具(Wireshark、浏览器开发者工具);6. 咨询服务提供商;7. 检查网络环境(防火墙、ISP限制);8. 逐步故障排除并记录变化。通过这些方法,能有效找出并解决问题。
365 5
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
《剖析Transformer架构:自然语言处理飞跃的幕后英雄》
Transformer架构自2017年提出以来,凭借自注意力机制革新了自然语言处理(NLP)。它摒弃传统RNN的顺序处理方式,实现全局并行计算,大幅提升训练效率。通过多头自注意力机制,Transformer能精准捕捉长距离依赖关系,多维度挖掘语义信息。位置编码赋予其序列顺序感知能力,而大规模预训练则使其具备强大的通用语言能力。Transformer已成为NLP领域的核心驱动力,推动智能语音助手、机器翻译等应用进入新时代。
450 2
|
存储 SQL 关系型数据库
深入探究InnoDB的MVCC快照机制
本文详细介绍了InnoDB存储引擎中的两种并发控制方法:MVCC(多版本并发控制)和LBCC(基于锁的并发控制)。MVCC通过记录版本信息和使用快照读取机制,实现了高并发下的读写操作,而LBCC则通过加锁机制控制并发访问。文章深入探讨了MVCC的工作原理,包括插入、删除、修改流程及查询过程中的快照读取机制。通过多个案例演示了不同隔离级别下MVCC的具体表现,并解释了事务ID的分配和管理方式。最后,对比了四种隔离级别的性能特点,帮助读者理解如何根据具体需求选择合适的隔离级别以优化数据库性能。
665 5
深入探究InnoDB的MVCC快照机制
|
搜索推荐 前端开发 数据安全/隐私保护
改善用户体验方法
【10月更文挑战第9天】改善用户体验方法
1228 3
|
存储 移动开发 缓存
HTML5的离线应用
【10月更文挑战第6天】
|
存储 弹性计算 固态存储
阿里云服务器ESSD Entry系统盘测评IOPS、IO读写和时延性能参数
ESSD Entry云盘是阿里云推出的新一代云盘,具备高IOPS、低延迟和企业级数据保护能力。适用于开发与测试场景,支持按量付费和包年包月计费模式。99元和199元的ECS经济型e实例和通用算力型u1实例均采用ESSD Entry系统盘,性价比高。详细性能参数和价格请参考阿里云官方页面。
539 0
|
Java 数据可视化
快递驿站取件管理系统|基于SpringBoot的快递栈系统设计与实现(二)
快递驿站取件管理系统|基于SpringBoot的快递栈系统设计与实现
328 0
快递驿站取件管理系统|基于SpringBoot的快递栈系统设计与实现(二)
|
XML JSON 编解码
物联网协议对比(HTTP、websocket、XMPP、COAP、MQTT和DDS协议)
物联网协议对比(HTTP、websocket、XMPP、COAP、MQTT和DDS协议)
物联网协议对比(HTTP、websocket、XMPP、COAP、MQTT和DDS协议)