Java 新特性—枚举

【中项第三版】系统集成项目管理工程师 | 第 1 章 信息化发展 阅读详情

枚举

  • 限制一个类的对象产生范围。

  • 举例:

  • 定义一个Colour类,颜色只能取红、绿、蓝。

  • 可以使用enum定义一种新的类,称为枚举类型

package cn.enum.RobertChao;

public enum Color{
	RED,GREEN,BIUE;
}

1、可以通过“枚举.内容”的形式进行取值操作。

  • 【枚举类的名字.类中设置得内容的名字】

2、输出枚举中的全部内容,可以使用foreach完成。

  • foreach 与 for 的区别。

  • for循环,通过下标,对循环中的代码反复执行。可以通过index取得元素。

  • foreach,从头到尾遍历集合中的对象。foreach使用的时候,会锁定集合的对象,期间不能进行修改。

  • To Choice foreach or for.

    • foreach相对于for循环,代码减少了,foreach依赖IEnumerable。在运行的时候效率低于for循环。

    • 在处理不确定循环次数的循环,或者循环次数需要计算的情况下。使用foreach比较方便。

    • 在复杂的循环设计时,还是应该使用for循环更加的灵活。

利用foreach把枚举类型中的内容全部取出。

package cn.enum.RobertChao;

public class ForeachEnum{
	public static void main(String[] args){
		for(Color c:Color.values()){
			System.out.println(c);
		}
	} 
}

3、Enum类 和 enum关键字 。

使用enum关键字定义的枚举类,就相当是一个子类,父类是Enum类。

Enum类中定义了下面几个方法:

方法名称描述
public Enum(String name;int ordinal)只能被其子类访问,此构造方法为自动调用
public final String name()枚举的名字
public final int ordinal()枚举的序号

上述构造方法完全与name和ordinal有关

所以这个类的构造方法,在enum每次定义枚举类型的时候,实际上都会自动调用构造

4、类集对枚举的支持(EnumSet、EnumMap类)。

① EnumMap是Map接口的子类,可以存放一对内容。

`EnumMap也是可以存放一对内容的。`

举例:

EnumMap<Color,String> map
		= new EnumMap<Color,String>(Color.class);
	map.put(Color.RED,"红色");
	System.out.println(map.get(Color.RED));

② EnumSet是Set接口的子类。

  • EnumSet.allof()、EnumSet.noneof()。

EnumSet.allof();表示将枚举的全部内容设置到集合之中。

EnumSet.noneof();表示Set集合中只能是枚举内容,但不包含枚举中的具体内容。

举例:

EnumSet<Color> set = new EnumSet.allof(Color.class);
for(Color x : set){
	System.out.println(x);
}

让枚举实现接口

在枚举操作中,一个枚举类是允许实现多个接口的。
但是要求此时枚举中的每个对象都必须单独各自覆写接口中的抽象方法。

举例:

package cn.com.RebortChao;

interface Info{
	public String getColor();
}
poublic enum Color implements Info{
	RED{
		public String getColor(){
			return "红色";
		}
	},
	GREEN{
		public String getColor(){
			return "绿色";
		}
	},
	BLUE{
		public String getColor(){
			return "蓝色";
		}
	};
}

测试一下上述枚举类对接口的引用。

package cn.com.RebortChao;

public class Test{
	public static void main(String[] args){
		for(Color c : Color.values()){
			System.out.println(c.getColor());
		}
	}
}

在枚举中实现抽象方法

  • 在枚举中定义抽象方法后,枚举中的每个对象都必须分别实现此抽象方法。
package cn.com.RebortChao;

poublic enum Color{
	RED{
		public String getColor(){
			return "红色";
		}
	},
	GREEN{
		public String getColor(){
			return "绿色";
		}
	},
	BLUE{
		public String getColor(){
			return "蓝色";
		}
	};
	public abstart String getColor();
}

和继承接口有些大同小异。

UFAST车道线检测 Ultra-Fast-Lane-Detection 从环境搭建到复现完成(一) UFAST车道线检测 Ultra-Fast-Lane-Detection 从环境搭建到复现完成(一) 阅读详情

相关推荐

C++游戏开发实战:从零构建局域网联机对战系统(附完整代码解析)

本文详细介绍了如何使用C++开发局域网联机对战游戏系统,涵盖从环境搭建到实战代码解析的全过程。重点讲解了Winsock库的应用、Socket通信原理、服务端与客户端开发技巧,以及性能优化和安全防护方案,帮助开发者快速掌握C++游戏开发的核心技术。

weixin_42524945的博客 444

在java中关于枚举类型的特性_java枚举类型小结

JDK5.0之前,我们一般选择使用 interface 来保存常量组,以此来弥补 JDK 中没有枚举类型的缺陷,从JDK5.0开始,Sun引进了一个全新的关键字 enum 来定义一个枚举类。同interface相比,enum 在功能上更为专业和强大。先上个例子:package com.darkmi.basic;enum Color{DARK, RED, BLUE;}public class Enu...

weixin_35879989的博客 476

PINN内嵌物理知识神经网络入门及文献总结

内嵌物理知识深度学习方法(PINN)已经成功用于解决各类科学计算问题,其本质是将物理先验知识嵌入神经网络训练中,将一个求解PDE的问题转化为一个优化问题。这篇博客主要记录PINN相关论文

山里娃的博客 7万+

JAVA之枚举Enum

一、什么是枚举? 二、枚举的一些关键特性 三、枚举使用场景 四、枚举与常量类 五、枚举与普通类 六、枚举与数据库 七、单个参数示例:(类似普通类中得构造参数) 八、多个参数:(类似普通类中得构造参数) 九、异常处理应用 十、高级操作 十一、枚举上使用注解

weixin_38959316的博客 7890

NLP实战:如何用CoNLL-2003数据集快速提升命名实体识别模型性能(附完整代码)

本文详细介绍了如何利用CoNLL-2003公开数据集,通过深度剖析数据特点、构建鲁棒的数据预处理流水线、选择合适的模型架构(如BERT-CRF)以及优化训练策略,来系统性地提升命名实体识别(NER)模型的性能。文章提供了完整的代码示例,并分享了处理数据不均衡、标签对齐等核心挑战的实战技巧,帮助读者从理论到实践全面掌握NER任务。

cola5的博客 494

SAP IDOC实战:如何用EDI实现跨公司采购订单自动生成销售订单(附完整配置步骤)

本文详细解析了如何利用SAP IDOC与EDI技术,实现跨公司采购订单自动生成销售订单的完整流程。通过实战案例,从业务蓝图设计、输出条件配置、伙伴参数设定到IDOC消息类型处理,提供了清晰的配置步骤与故障排查指南,帮助企业打通内部业务流,构建高效的自动化闭环。

weixin_29215815的博客 728

Java进阶 1-3 枚举(switch的新特性)

新特性:switch的箭头语法 新特性:switch中的case null 新特性:将switch作为表达式使用 在枚举中的实际应用 新特性:模式匹配 智能转型 模式匹配 违反里式替换原则 守卫 支配 sealed的使用

w_pab的博客 3780

「分治法」最近点对距离问题

一、问题描述 给定平面S上n个点,找其中的一对点,使得在n个点组成的 所有点对中,该点对间的距离最小。 假设所讨论的点是以标准笛卡儿坐标形式(x, y)给出的。因 此,在两个点Pi =(xi , yi )和Pj =(xj , yj )之间的距离是标准的欧几里德 距离: d = 根号下( x i − x j ) 2 + ( y i − y j )2 二、问题分析 直接用暴力解法很简单,用结构体把每个点的x、y坐标都存下来之后,用一个二重循环即可获得距离的最大值。但是这样做的时间复杂度也达到了O(n的平方)

Laok0413的博客 9656

Java 枚举 新特性

随着JDK版本的迭代,Java的enum不仅在类型安全上更加强大,还与switch语句和表达式、StreamAPI等其他特性紧密结合。switch表达式和对null值的支持让枚举的使用更加灵活,开发者可以更简洁地处理各种逻辑,提高代码的可读性和可维护性。通过合理使用这些特性,我们可以编写更清晰、高效的代码,将Java的强大特性充分发挥出来。

四楼没电梯的专栏 1385

OpenClaw 子代理配对失败问题分析与解决方案

OpenClaw子代理配对失败问题分析与解决方案 问题核心在于agent设备权限不足,仅有operator.approvals权限而缺少operator.admin权限,导致子代理启动时形成权限死锁。本文提供三种解决方案: 直接编辑设备配对文件(推荐):修改本地JSON文件,为agent设备添加完整operator.admin权限,操作简单快捷。 标准重新配对流程:删除现有agent设备后重新配对,通过正常审批流程获取完整权限,符合系统安全设计。 修改源码降低权限要求(仅限开发环境):调整子代理代码避免强制

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 149

【RTD】AD7793驱动程序

AD7793完整驱动程序,支持两线、三线、四线RTD。

只要思想不滑坡,想法总比问题多。 6174

Java之 枚举

1.1实际上枚举就是一种高级的多例设计模式。 eg:基于枚举开发 enum Color { RED,GREEN,BLUE } public class TestDemo { public static void main(String[] args) { System.out.println(Color.BLUE); ...

C_U_N_Z的博客 323

图神经网络实战(21)——图神经网络的可解释性

在本节中,我们探讨了应用于图神经网络 (Graph Neural Networks, GNN) 的可解释性人工智能 (Explainable Artificial Intelligence, XAI) 技术。可解释性是许多领域的关键要素,可以帮助我们建立更好的模型。我们介绍了不同的局部解释技术,并重点讨论了 GNNExplainer (基于扰动的方法),在图分类任务中应用 GNNExplainer。

盼小辉丶的博客 9526

Java学习笔记——新特性-枚举

Java学习笔记——新特性-枚举 文章目录Java学习笔记——新特性-枚举1 自定义枚举类2 使用enum定义枚举类3 枚举类的主要方法 1 自定义枚举类 class Season implements Info{ //1. 类的属性,声明为private final,因为枚举类对象的属性不应允许被改动 private final String name; private final Str...

Runner1st的博客 496

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Java基础教程】(二十四)Java新特性篇 · 第四讲:枚举类——还在因为使用了魔法数而被老大怼吗,一起来看看枚举器的作用吧!~

关于Java枚举类的一些知识介绍,主要包括其概念、优势和缺点、使用方式和案例、 Enum类的常用方法、枚举类的特征及其应用场景等方面。 通过使用枚举类,可以使代码更具有可读性、可维护性,并且降低错误发生的概率。在实际开发中,根据需求的不同,可以灵活运用枚举类来达到更好的编码效果。

Technology changes the world of life 1407

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

JAVA 5.0 新特性 枚举 ——enum

今天对JAVA5.0以后出现的新特性枚举enum进行学习和使用,现在记录如下。 枚举感觉和数组差不多,可以对常量进行定义,类似于:   public static final int a = 4 ;    先把一段可直接运行看看效果的代码放上来。   代码:     public class EnumTest{ public static void main(St...

iteye_20696的博客 185

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

java新特性 —— 枚举

枚举是JDK 1。5之后提供的新特性,希望此份笔记对大家有用啊,还有类集对枚举的支持呢。

iteye_16360的博客 127

Java 新特性之枚举

1 定义 当某个类的对象是确定的、有限个的,那么就称这个类为枚举类。 示例: 星期类:Monday( 星期一)对象 …… Sunday (星期天)对象 性别类: Man( 男)对象 、 Woman( 女)对象 2 枚举类的使用 2.1 自定义枚举类 ** 步骤**: 用private final来修饰声明枚举类对象的属性; 私有化枚举类的构造器,并给枚举类对象属性赋值; 实例化当前枚举类的多个对象,并用public static final来修饰枚举类对象。 代码实现: public class S

weixin_44262126的博客 249

枚举与java5的一些简单新特性

一、

kris 335

Java - 枚举、JDK8新特性、正则表达式

概述 枚举的本质 枚举实现单例 枚举编译后也会产生 .class 文件,对其反编译后可以看到枚举的本质方法引用方法引用:必须要有lambda表达式已经完成同样的操作,才能使用方法引用简单使用 Base64编解码概述常用方法base编解码 三、正则表达式 概述正则语法 正则应用字符串.trim() 清空字符串前后的空格

Shine bright like a diamond ! 802

java 枚举 二进制,java 7 新特性/switch/枚举类型/二进制/字面量

package com.xdl.java7;import org.junit.Test;import com.xdl.ienum.XuDaoLong_Final_Val;public class Day_One {/*** java7string新特性switch与枚举类型,二进制,字面量** @param nameString* @param genderString* @return*/pub...

weixin_32642109的博客 216

Java新特性——枚举

多例设计模式与枚举 使用枚举进行基本操作 多例设计模式与枚举 多例设计模式一定是构造方法私有化,而后在类的内部产生若干个实例化对象。 范例:定义颜色基色的多例设计模式 class Color{ private static final Color RED = new Color("红色"); private static final Color GREEN = new Color("绿色"...

SILENCE_LM_的博客 338

java枚举新特性_Java5新特性之枚举

1.概念首先,枚举并非一种新技术,而是一种基础数据类型.它隶属于两种基础类型中的值类型,例如以下:2.为什么要有枚举枚举在真正的开发中是非经常常使用的,它的作用非常easy也非常纯粹:它定义了一种规范,就是要让某个类型的变量的取值仅仅能为若干个固定值中的一个,也就是要符合它定义的规范.它能够让编译器在编译时就能够识别程序中填写的非法值,一定程度上防止了执行时的非法类型值错误.比如:要定义星期几的变...

weixin_35036735的博客 162

【Java】新特性之枚举

目录 枚举 Enum类 Enum类中存在两大属性 取得所有枚举类对象 枚举中定义其他结构 枚举实现接口 枚举 使用enum关键字定义的枚举结构实际上是默认继承了Enum类的枚举类 语法: //定义枚举 enum Color{ RED,BLUE,GREEN; } Enum类 Enum类中存在两大属性 name:枚举对象名称 public final ...

qq_43464809的博客 181

java 新特性 枚举

JDK  新特性之枚举(enum): 枚举就是要某个类型的变量的取值只能是几个固定值中的某一个,否则,编译器就会报错,枚举可以让编译器在编译时就可以控制程序中填写的非法值,普通变量的方式无法实现这一目标;   枚举的实现:     package learn; /** * 枚举 * @author hui */ public class EnumTest { pub...

为伊疯狂 153

java的三大新特性之枚举

1.什么是枚举: 枚举是Java1.5引入的新特性,通过关键字enum来定义枚举类。枚举类是一种特殊类,它和普通类一样可以使用构造器、定义成员变量和方法,也能实现一个或多个接口,但枚举类不能继承其他类. 2.枚举的特点: 实际枚举就是一种多例设计模式。所以首先要认识枚举,需要知道多例设计模式的特点:构造方法私有化,类内部需要提供若干个实例化对象,后面通 过statica方法返回。 3.声明枚举变量 enum Color { RED,YELLO,GREED } public class

柠檬精 484
上一篇: java新特性—泛型
下一篇: java新特性—Annotation
Roobert_Chao
博客等级 码龄9年 89粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值