枚举(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这个抽象类。

相关文章
|
Web App开发 Rust JavaScript
webRTC 实现人脸识别
webRTC主要是帮我们处理多媒体应用,如音视频通话,屏幕共享都可以实现,主要基于浏览器API调用,其底层浏览器会调用native C++ 等一些库帮我们实现的,而我们在应用层掉API 即可。
404 0
webRTC 实现人脸识别
|
4月前
|
网络协议
紧急!域名被暂停?Namecheap验证解除全攻略
本文详细介绍了当域名因ICANN规定被暂停时的解决方法。主要原因是未在15天内验证Whois联系人信息,Namecheap会暂停域名导致服务中断。文章提供了三步解决方案:检查并更新Whois信息、查收验证邮件、手动请求重发验证邮件,并给出了预防未来暂停的建议。确保域名管理信息准确,避免网站意外中断。文中还解答了一些常见问题,如验证恢复时间、失败处理等,强调了域名管理的重要性。
241 0
紧急!域名被暂停?Namecheap验证解除全攻略
|
7月前
|
SQL 数据可视化 BI
VeryReport和FineReport两款报表软件深度分析对比
VeryReport和FineReport两款报表软件深度分析对比
|
5月前
|
jenkins 测试技术 Shell
利用Apipost轻松实现用户充值系统的API自动化测试
API在现代软件开发中扮演着连接不同系统与模块的关键角色,其测试的重要性日益凸显。传统API测试面临效率低、覆盖率不足及难以融入自动化工作流等问题。Apipost提供了一站式API自动化测试解决方案,支持零代码拖拽编排、全场景覆盖,并可无缝集成CI/CD流程。通过可视化界面,研发与测试人员可基于同一数据源协作,大幅提升效率。同时,Apipost支持动态数据提取、性能压测等功能,满足复杂测试需求。文档还以用户充值系统为例,详细介绍了从创建测试用例到生成报告的全流程,帮助用户快速上手并提升测试质量。
|
7月前
|
运维 监控 安全
代理IP故障排查,怎样快速锁定问题?
在信息化时代,互联网不可或缺,业务需求使HTTP动态代理IP的应用日益广泛。为快速排查代理IP故障,可采取以下步骤:1. 检查代理IP有效性(Ping测试、HTTP请求测试);2. 监控连接速度(延迟、带宽测试);3. 分析错误信息(HTTP状态码、错误日志);4. 检查代理设置(配置文件、协议支持);5. 使用调试工具(Wireshark、浏览器开发者工具);6. 咨询服务提供商;7. 检查网络环境(防火墙、ISP限制);8. 逐步故障排除并记录变化。通过这些方法,能有效找出并解决问题。
199 5
|
设计模式 前端开发 数据库
Django教程第1章 | 快速入门 | 基础知识
Django简介、Django特点、MVC与MTV模型、安装Django、开发用户管理案例【2月更文挑战第21天】
255 2
Django教程第1章 | 快速入门 | 基础知识
|
SQL 分布式计算 算法
程序员必备的面试技巧——大数据工程师面试必备技能
程序员必备的面试技巧——大数据工程师面试必备技能
299 0
|
机器学习/深度学习 人工智能
通义千问和文新一言
通义千问和文新一言
968 3
|
JavaScript
使用 Vue CLI 创建 Vue 项目的详细步骤
使用 Vue CLI 创建 Vue 项目的详细步骤
184 0
|
网络协议 安全 网络架构
【华为HCIP | 华为数通工程师】IPV4与IPV6 高频题(2)
【华为HCIP | 华为数通工程师】IPV4与IPV6 高频题(2)
420 0