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

相关文章
|
编译器 C语言 C++
右值引用,完美转发,NRVO 和RVO优化(简单易懂详细)
右值引用,完美转发,NRVO 和RVO优化(简单易懂详细)
1353 0
|
5月前
|
网络协议
紧急!域名被暂停?Namecheap验证解除全攻略
本文详细介绍了当域名因ICANN规定被暂停时的解决方法。主要原因是未在15天内验证Whois联系人信息,Namecheap会暂停域名导致服务中断。文章提供了三步解决方案:检查并更新Whois信息、查收验证邮件、手动请求重发验证邮件,并给出了预防未来暂停的建议。确保域名管理信息准确,避免网站意外中断。文中还解答了一些常见问题,如验证恢复时间、失败处理等,强调了域名管理的重要性。
269 0
紧急!域名被暂停?Namecheap验证解除全攻略
|
8月前
|
SQL 数据可视化 BI
VeryReport和FineReport两款报表软件深度分析对比
VeryReport和FineReport两款报表软件深度分析对比
|
敏捷开发 资源调度 测试技术
阿里云云效产品使用合集之怎么解绑钉钉组织
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
《剖析Transformer架构:自然语言处理飞跃的幕后英雄》
Transformer架构自2017年提出以来,凭借自注意力机制革新了自然语言处理(NLP)。它摒弃传统RNN的顺序处理方式,实现全局并行计算,大幅提升训练效率。通过多头自注意力机制,Transformer能精准捕捉长距离依赖关系,多维度挖掘语义信息。位置编码赋予其序列顺序感知能力,而大规模预训练则使其具备强大的通用语言能力。Transformer已成为NLP领域的核心驱动力,推动智能语音助手、机器翻译等应用进入新时代。
294 2
|
12月前
|
搜索推荐 前端开发 数据安全/隐私保护
改善用户体验方法
【10月更文挑战第9天】改善用户体验方法
653 3
|
12月前
|
存储 移动开发 缓存
HTML5的离线应用
【10月更文挑战第6天】
|
11月前
|
存储 弹性计算 固态存储
阿里云服务器ESSD Entry系统盘测评IOPS、IO读写和时延性能参数
ESSD Entry云盘是阿里云推出的新一代云盘,具备高IOPS、低延迟和企业级数据保护能力。适用于开发与测试场景,支持按量付费和包年包月计费模式。99元和199元的ECS经济型e实例和通用算力型u1实例均采用ESSD Entry系统盘,性价比高。详细性能参数和价格请参考阿里云官方页面。
438 0
|
缓存 监控 安全
使用GraphQL构建高效数据查询:技术深度剖析与实践
【8月更文挑战第11天】GraphQL以其强大的灵活性和高效性,为现代Web开发提供了一种全新的数据查询和传输方式。通过合理使用GraphQL的核心特性和策略,开发者可以构建出高效、灵活且易于维护的API。然而,GraphQL的成功应用也需要开发者在Schema设计、查询优化、客户端缓存以及安全性等方面进行深入的思考和实践。希望本文能够为开发者在使用GraphQL构建高效数据查询方面提供一些有益的参考和启示。
|
Java 数据可视化
快递驿站取件管理系统|基于SpringBoot的快递栈系统设计与实现(二)
快递驿站取件管理系统|基于SpringBoot的快递栈系统设计与实现
264 0
快递驿站取件管理系统|基于SpringBoot的快递栈系统设计与实现(二)