java的面向对象编程(oop)——认识枚举

前言

打好基础,daydayup!

枚举 

1,认识枚举:

枚举是一种特殊类,用enum语句修饰。与普通类不同的是:枚举类的第一行只能写一些合法的标识符(名称),多个名称用逗号隔开。这些标识符(名称)的本质是常量,每个常量会记住枚举类的一个对象。

2,枚举的格式: 

表达式如下:

修饰符 enum 枚举类名{
名称1,名称2,...;...其他内容...}

例:

public enum EnumDemo {A,B,C;public  void demo1(){}
}

 注:枚举类不能在外部额外创建对象,只能在内部创建对象。内部创建了几个对象,就只能拥有几个对象。创建新对象会报错。同时,如果构建了构造器,那么这个构造器是私有非公开的

如下图:

然后通过javap命令在cmd中进行编译,可以发现枚举的对象都是由final进行修饰的,所以枚举都是最终类,不能被继承。

同时通过反编译可以观测到枚举类是自动继承java.lang.Enum这个类的。并同时继承了values和valueOF两个方法。

3, 枚举的自带方法

1,values方法:

该方法可以把枚举类中的所有对象添加到数组并遍历出来

如下图所示:

2,valueOF方法:

该方法可以通过调用枚举标识符(名称),来调用对象,并可以通过ordinal语句来查看对象索引。值得注意的是:“直接调用对象”和“通过调用名字来调用对象”,从结果上来看效果是一样的,但意义是完全不同的,一定要注意。

4,抽象枚举 

和普通枚举不同,抽象枚举不能直接创建对象。若是直接创建对象,会报错说把类改成抽象类或移除抽象方法。

所以在抽象枚举中,需要在定义对象时重新定义方法。这样就可以避免报错。

5,枚举的使用场景

1,实现单例

单例是把类的构造器私有;定义一个类变量储存类 的一个对象:提供一个类方法返回对象。其特点为:在获取类的对象时,对象已经创建好了。

单例相关可以看这篇

java的面向对象编程(oop)——static概述及初始单例设计模式

这里用枚举类会有一个简单做法。如下

2,用来表示一组信息,然后作为参数进行传输(需要严格限定信息时)

实验要求:男女分类,如果是男生,向左走;如果是女生,向右走。

同样的实验要求也可以用常量做,但是用枚举的好处在于,分类信息一旦确定,很难轻易更改,不容易出差错。但是会比较死板,如果需要灵活的修改数据,还是用常量的方法来做。

结语:

枚举是一个比较封闭式的语句。优点在于数据不容易被篡改,非常安全。缺点在于如果需要经常更改变量方法,则会有些力不从心。总结结束,撒花!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/685347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后端接口如何部署到前端

先跑通后端 把后端接口路径写入前端两个env.js中的BASE_API 这里以后要替换成个人域名,目前就可以对前端进行打包,改了代码记得先重新打包

安卓TextView 拖动命名

需求:该布局文件使用线性布局来排列三个文本视图和一个按钮,分别用于显示两个动物名称以及占位文本视图。在占位文本视图中,我们为其设置了背景和居中显示样式,并用其作为接收拖放操作的目标 效果图; 实现代码 第一布…

如何查找Windows的桌面文件夹?这里提供详细步骤

当你的电脑上有不同的用户时,Windows 11、10、…上的桌面文件夹或桌面目录特别有用,那么哪里才是真正的桌面文件夹目录。 自己的Windows桌面目录 1、启动Windows资源管理器 2、按F4键并输入%UserProfile% 3、点击桌面 这是你个人桌面的正确文件夹路径…

【送码】【IOS付费榜92名】春节不打烊,功德加倍攒

整体效果概览图 船新玩法,换个姿势攒功德 竞品玩法 过于简单:都是敲敲,然后设置里换换木鱼样式、音色等 本APP玩法 功德上云:敲击之后,会将所积攒的功德上传至fo祖云端 功德可视化:每日功德、3D功德地…

Calendar的使用(Java)

直接从需求来理解:将2024年2月16日增加一个月 如果不使用Calendar的话,我们需要定义字符串记住这个日期,然后把字符串解析成Date日期对象,通过Date日期对象获取其毫秒值,然后增加一个月的毫秒值,再格式化时…

东莞添威电子开关电源测控软件开发

加我微信hezkz17,可学习嵌入式开关电源开发技术进答疑群 1 ATE 2 开关电源产品

2024年!PyCharm快捷键大全

收藏!PyCharm快捷键大全 工欲善其事必先利其器,PyCharm 是最popular的Python开发工具,它提供的功能非常强大,是构建大型项目的理想工具之一,如果能挖掘出里面实用技巧,能带来事半功倍的效果。 本文主要向大…

try catch中的finally代码一定会执行吗?

1.正常情况 正常运行的情况下,finally 中的代码是一定会执行的,但是,如果遇到以下异常情况,那么 finally 中的代码就不会继续执行了: 程序在 try 块中遇到 System.exit() 方法,会立即终止程序的执行&#…

Kubernetes(K8S)集群部署实战

目录 一、准备工作1.1、创建3台虚拟机1.1.1、下载虚拟机管理工具1.1.2、安装虚拟机管理工具1.1.3、下载虚Centos镜像1.1.4、创建台个虚拟机1.1.5、设置虚拟机网络环境 1.2、虚拟机基础配置(3台虚拟机进行相同处理)1.2.1、配置host1.2.2、关闭防火墙1.2.3…

构造题记录

思路&#xff1a;本题要求构造一个a和b数组相加为不递减序列&#xff0c;并且b数组的极差为最小的b数组。 可以通过遍历a数组并且每次更新最大值&#xff0c;并使得b数组为这个最大值和当前a值的差。 #include <bits/stdc.h> using namespace std; #define int long lon…

【BUUCTF 加固题】Ezsql 速通

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …

阿里云/腾讯云幻兽帕鲁服务器据点最大帕鲁工作数量最多15个,改成20不生效?

例如&#xff0c;在阿里云的计算巢管理中&#xff0c;找到你的这台部署幻兽帕鲁的服务器实例&#xff0c;选择右上角的“修改游戏配置” 然后选择“基地内工作帕鲁的最大数量”改成20 有人说更改上面的数字&#xff0c;根本不起作用。原因可能如下&#xff1a; 参考资料&#…

SORA:OpenAI最新文本驱动视频生成大模型技术报告解读

Video generation models as world simulators&#xff1a;作为世界模拟器的视频生成模型 1、概览2、Turning visual data into patches&#xff1a;将视觉数据转换为补丁3、Video compression network&#xff1a;视频压缩网络4、Spacetime Latent Patches&#xff1a;时空潜在…

《数电》理论笔记-第3章-常用组合逻辑电路及MSI组合电路模块的应用

一&#xff0c;编码器和译码器 1&#xff0c;编码器 编码:用由0和1组成的代码表示不同的事物。 编码器:实现编码功能的电路&#xff0c; 常见编码器:普通编码器、优先编码器、二进制编码器二-十进制编码器等等 1.1 三位二进制普通编码器和三位二进制优先编码器 1分58秒开始 …

为什么您的企业 AI 战略可能会在 2024 年失败:模型下降与数据上升

我怀疑有些人会指责我设置引诱性标题。 其他人会说&#xff0c;这并不是真正的范围——大多数人在最初的人工智能尝试中都会失败&#xff0c;但这并不重要&#xff0c;学习是值得的。在某种程度上&#xff0c;两者都是对的——但我认为为什么企业会失败是值得探索的&#xff0c…

并发编程(1)基础篇

1 概览 1.1 这门课讲什么 这门课中的【并发】一词涵盖了在 Java 平台上的 进程线程并发并行 以及 Java 并发工具、并发问题以及解决方案&#xff0c;同时也会讲解一些其它领域的并发 1.2 为什么学这么课 我工作中用不到并发啊&#xff1f; 那你还是没有接触到复杂项目. …

猫头虎分享已解决Bug || TypeError: Cannot read property ‘value‘ of undefined

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

[数学建模] 计算差分方程的收敛点

[数学建模] 计算差分方程的收敛点 差分方程&#xff1a;差分方程描述的是在离散时间下系统状态之间的关系。与微分方程不同&#xff0c;差分方程处理的是在不同时间点上系统状态的变化。通常用来模拟动态系统&#xff0c;如在离散时间点上更新状态并预测未来状态。 收敛点&…

数学实验第三版(主编:李继成 赵小艳)课后练习答案(十一)(1)(2)(3)

目录 实验十一&#xff1a;非线性方程&#xff08;组&#xff09;求解 练习一 练习二 练习三 实验十一&#xff1a;非线性方程&#xff08;组&#xff09;求解 练习一 1.求莱昂纳多方程 的解 clc;clear; p[1,2,10,-20]; roots(p)ans -1.6844 3.4313i -1.6844 - 3.4313i…

U盘重装系统

因为系统管理员密码忘记&#xff0c;登录不了window系统&#xff0c;使用老毛桃制作U盘启动盘 1、下载老毛桃 下载地址为http://lmt.psydrj.com/index.html 安装后&#xff0c;桌面上显示为 2、制作U盘启动盘 启动老毛桃U盘启动装机工具&#xff0c;插入U盘&#xff0c;点击一…