如何掌握JDK1.5枚举类型

Figma汉化教程 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。   1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。   2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。   3.Enum默认实现了java.lang.Comparable接口。   4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”.   5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。   6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。   7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。   了解了这些基本特性,我们来看看如何使用它们。   1.遍历所有有枚举值. 知道了有values方法,我们可以轻车熟路地用ForEach循环来遍历了枚举值了。   for (Color c: Color.values())   System.out.println(“find value:” c);   2.在enum中定义方法和变量,比如我们可以为Color增加一个方法随机返回一个颜色。   public enum Color {   Red,   Green,   Blue;   /*   *定义一个变量表示枚举值的数目。   *(我有点奇怪为什么sun没有给enum直接提供一个size方法).   */   private static int number = Color.values().length ;   /**   * 随机返回一个枚举值   @return a random enum value.   */   public static Color getRandomColor(){   long random = System.currentTimeMillis() % number;   switch ((int) random){    case 0:     return Color.Red;    case 1:     return Color.Green;    case 2:     return Color.Blue;    default : return Color.Red;   }   }   }   可以看出这在枚举类型里定义变量和方法和在普通类里面定义方法和变量没有什么区别。唯一要注意的只是变量和方法定义必须放在所有枚举值定义的后面,否则编译器会给出一个错误。   3.覆载(Override)toString, valueOf方法   前面我们已经知道enum提供了toString,valueOf等方法,很多时候我们都需要覆载默认的toString方法,那么对于enum我们怎么做呢。其实这和覆载一个普通class的toString方法没有什么区别。   ….   public String toString(){   switch (this){   case Red:    return "Color.Red";   case Green:    return "Color.Green";   case Blue:    return "Color.Blue";   default:    return "Unknow Color";   }   }   ….   这时我们可以看到,此时再用前面的遍历代码打印出来的是   Color.Red   Color.Green   Color.Blue   而不是   Red   Green   Blue.   可以看到toString确实是被覆载了。一般来说在覆载toString的时候我们同时也应该覆载valueOf方法,以保持它们相互的一致性。   4.使用构造函数   虽然enum不可以有public的构造函数,但是我们还是可以定义private的构造函数,在enum内部使用。还是用Color这个例子。   public enum Color {   Red("This is Red"),   Green("This is Green"),   Blue("This is Blue");   private String desc;   Color(String desc){   this.desc = desc;   }   public String getDesc(){   return this.desc;   }   }   这里我们为每一个颜色提供了一个说明信息, 然后定义了一个构造函数接受这个说明信息。   要注意这里构造函数不能为public或者protected, 从而保证构造函数只能在内部使用,客户代码不能new一个枚举值的实例出来。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。   5.实现特定的接口   我们已经知道enum可以定义变量和方法,它要实现一个接口也和普通class实现一个接口一样,这里就不作示例了。   6.定义枚举值自己的方法。   前面我们看到可以为enum定义一些方法,其实我们甚至可以为每一个枚举值定义方法。这样,我们前面覆载 toString的例子可以被改写成这样。   public enum Color {   Red {   public String toString(){    return "Color.Red";   }   },   Green {   public String toString(){    return "Color.Green";   }   },   Blue{   public String toString(){    return "Color.Blue";   }   };   }   从逻辑上来说这样比原先提供一个“全局“的toString方法要清晰一些。   总的来说,enum作为一个全新定义的类型,是希望能够帮助程序员写出的代码更加简单易懂,个人觉得一般也不需要过多的使用enum的一些高级特性,否则就和简单易懂的初衷想违背了
13.0 针对跳转不存在Activity崩溃处理,改成弹Toast提示,去掉崩溃弹窗,避免app崩溃退出 在开发过程中,在app跳转到某个没注册的Acitivity时,往往会出现崩溃的场景,这样也不好,接下来就从framework中来拦截这个崩溃,改成toast提示, 阅读详情

相关推荐

遥感大模型之Prithvi的关键技术解读

Prithvi系列模型开创了遥感领域基础模型新范式,通过海量多源时空数据(HLS和SAR)与Vision Transformer架构的深度融合,采用掩码自编码器进行自监督预训练,实现了强大的地球观测表征能力。该技术体系突破传统方法在全局建模、多模态融合和时空分析上的局限,仅需少量标注数据即可在土地分类、灾害监测等任务上取得优异表现。从初代3亿参数到Prithvi-EO-2.0的10亿参数升级,展现了模型可扩展性,为构建地球数字孪生智能基座奠定基础。

panshengwu的博客 867

熟练掌握JDK1.5枚举类型

熟练掌握JDK1.5枚举类型       Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口  Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征

kaile8324的专栏 908

手把手搭建你的第一个OCT仿真模型:用Python和光学仿真库重现A-SCAN信号

本文详细介绍了如何使用Python和光学仿真库搭建OCT仿真模型,重现A-SCAN信号。从环境配置、干涉仪建模到信号处理全流程,手把手教你实现光学相干层析成像的核心技术。通过代码示例和性能优化技巧,帮助开发者深入理解OCT原理并应用于医疗诊断等领域。

weixin_42562079的博客 241

Java枚举类enum原理详解

Java枚举类enum原理详解为什么要使用枚举类枚举类原理三、enum类所继承的父类java.lang.Enum其他用法附java.lang.Enum源码 为什么要使用枚举类 枚举类enum作为Java5新增特性的一部分,是用来代替常量的。 比如以下场景,定义一年的四个季节: public class Season { public final int SPRING = 1; pu...

qq_34826261的博客 1273

华为OD机试真题2026双机位C卷 C语言 实现【明日之星选举】

给定一组选票votes。votes[i]代表第 i 张选票的内容,包含一个字符串"zhangsan,hanmei",表示推荐zhangsan为明日之星,反对 hanmei 称为明日之星。赞成或反对使用逗号(,)分割。 给定一个数组n,表示最后将筛选出赞成票最多的n个人,如果赞成票相同,则反对票越少,排序越靠前;如果赞成票和反对票都相同,则按照姓名字典序升序排序。

MISAYAONE的博客 184

算法 | A*算法实现最优路径规划

启发式探索是利用问题拥有的启发信息来引导搜索,达到减少探索范围、降低问题复杂度的目的。A*寻路算法是启发式探索的一个典型实践,在寻路搜索的过程中,给每个节点绑定了一个估计值(即启发式),在对节点的遍历过程中采取估计值优先原则,估计值更优的节点会被优先遍历。...

不断学习,不断进步,提高自己 6635

浅谈枚举认识及原理(Enum)

**前言:**最近学习到Java枚举,在网上搜索了一圈发现都有很多种理解,在这里借鉴他人对枚举的介绍再总结自己的 一些浅见 1.枚举介绍 首先,枚举是 jdk1.5引入的新特性,枚举是一种规范,它规范了参数的形式. 说白了就是,枚举可以定义的一些常量和实例,规范参数的形式,好比定义一个常量类(规范参数的取值范围) 举个例子:定义一个季节枚举,里面定义春夏秋冬的常量,当使用季节类型作为参数时,若使用该季节枚举作为参数,就限制了用户的参数输入,只能是春夏秋冬。 更通俗的理解就是:你想要的类型和常量,我都给你限定

qq_18361601的博客 1516

【机器学习】随机森林(Random Forest,简称 RF):预测光伏电站功率 || 缺失数据处理 || 重复行处理...

【机器学习】随机森林(Random Forest,简称 RF):预测光伏电站功率。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 1650

The method onCreate in type MainActivity can only set one of public / protec

protected void onCreate(Bundle savedInstanceState) { 在这句里显示这样的错误: The method onCreate in type MainActivity can only set one of public / protec 重启javaEE就可以啦,原因不懂,求大神求解,保存有刷新的功能

u013365404的专栏 4743

数据挖掘7、银行精准营销

利用数据挖掘技术,对银行已有数据进行分析,对客户进行识别,对客户是否能够进行存款精准营销Windows11。

m0_63099685的博客 395

pi-coding-agent 完整详解

pi-coding-agent是一个由Mario Zechner开发的专业AI编程助手,基于Node.js和TypeScript构建。核心功能包括:1)多级思考模式(ThinkingLevel),从none到ultra控制推理深度;2)对话压缩(compaction)管理长对话记忆;3)WebSocket实时通信支持流式交互。该智能体支持代码生成、调试、重构等专业编程任务,采用AI Agent架构,具备工具调用和多轮记忆能力。项目结构通常包含server、agent、config等模块,可通过二次开发扩展功

大坡3D软件开发 2434

深入理解Java枚举类型(enum)

【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/71333103 出自【zejian的博客】 关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解

zejian的博客 48万+

【差分运放电路加偏置电压

摘要:该电路采用单电源供电运放(A3V3)处理双极性差分信号,通过1V直流偏置解决负半周信号削波问题。关键设计包括:15kΩ/10kΩ电阻分压建立1V基准,对称电阻网络实现2.5倍差分放大,0.1μF电容滤除电源噪声。适用于传感器信号调理(如电流采样、压力传感)和3.3V系统处理±0.5V交流信号,输出0-2.5V适配ADC输入。注意事项强调电阻匹配对共模抑制的重要性,以及电源滤波电容需靠近运放引脚布局。

qq_37999850的博客 565

JDK1.5后的枚举类型

枚举 枚举是在JDK1.5以后引入的。 主要用途:将一组常量组织起来。 这里创建一个名为TestEnum的枚举类型: public enum TestEnum { RED,BLACK,GREEN; } 优点:将常量组织起来统一进行管理(枚举类型都是常量,一般都用大写字母表示) 应用场景:错误状态码,消息类型,颜色的划分,状态机等 本质:是java.lang.Enum 的子类,也就是说TestEnum默认继承了java.lang.Enum这个类。 1 enum枚举在switch语句中使用 public c

长不大的大灰狼 343

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

掌握JDK1.5枚举类型

[转载]   掌握JDK1.5枚举类型 Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class,   它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。   当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。     1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。     2.所有枚举值都是pub...

yang576017120的专栏 176

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JDK1.5枚举类型学习

Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class,它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。 1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。 2.所有枚举值都是public,static,final的。注意这一点只是针对于枚举值,

u013594602的专栏 545

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

(14)jdk1.5开始的一些新特性:静态导入,增强for循环,可变参数,自动装箱/拆箱,枚举类型...

Jdk1.5新特性之静态导入 jdk1.5新特性值静态导入 静态导入的作用:简化缩写 静态导入的作用:可以作用一个类的所有静态成员。 静态导入的格式:import static 包名.类名.静态的成员 importstaticjava.util.Collections.sort; //静态导入指定的某个静态成员方法 import static java.util.Coll...

apple3515的博客 163

JDK1.5枚举类型

google_ad_client = "pub-5033576919944123";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_type = "text_image";//2007-10-24: csdn.bloggoogle_ad_channe

tgystc 444

枚举的介绍、枚举是JDK1.5之后引入的,那么之前如何实现的、以及枚举当中的一些方法

枚举的介绍 枚举:列举,罗列 枚举是代表这样的一系列的类型,这些类型有一个非常明显的特征,他们的对象是有限个 **列如:**Week(星期),我们可以限定Week类型的对象只有7个 Season(季节),可以限定对象为四个 员工的状态(Status),可以限定为:空闲(Free),忙(Busy),休假(Vocation),离职(Left) 枚举类是JDK1.5之后引入的。 那么我们先看看JDK1.5之前没有枚举的类型是如何实现枚举的需求? Jdk1.5之前:如何实现这种枚举的需求 要点:整个系统中,某个类型

qq_41005604的博客 571
上一篇: JBuilder和JDeveloper的比较
下一篇: 对Java 开发者:IBM Global Delivery 韩国项目组招聘职位
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值