Java-枚举

基本概念

数据类型:

  • 基本数据类型:有8个
  • 引用数据类型:数组[]、类class、抽象类abstract class、接口、枚举enum、注解@interface

枚举的应用场景:
当一个类中的对象是确定的时候,可以使用枚举,例如:一年的四季(春夏秋冬)、一年的12个月、星期1~星期7,这些都是可以一 一列举出来的。

重要属性:
1、name:表示当前枚举对象的名字。

2、name()方法:可以获取name属性。

2、ordinal:枚举对象在类中罗列的顺序,类似index从0开始。

4、ordinal()方法:可以获取枚举类中对象的序号。

3、valueOf():获取一个对应的枚举对象。

4、values():获取全部的枚举对象,返回一个数组。

5、compareTo():比较两个枚举对象,返回值是int。

我们可以在enum类中定义自己的属性或方法。
必须在enum类中第一行,描述一下枚举的样子,最后需要用分号结束。
在枚举类中可以创建构造方法,构造方法可以重载,构造方法只能用private修饰。
枚举类创建的过程中,自动帮我们创建枚举类型的对象。

代码示例:
没有枚举的时候,解决枚举的应用场景示例。
MyDay类:

package myenum;public class MyDay {//类似于单例模式//私有构造方法private MyDay(){}//所有属性都是对象public static final MyDay monday = new MyDay();public static final MyDay tuesday = new MyDay();public static final MyDay wednesday = new MyDay();public static final MyDay thursday = new MyDay();public static final MyDay friday = new MyDay();public static final MyDay saturday = new MyDay();public static final MyDay sunday = new MyDay();//一般属性、一般方法可以随便设计}

Test类:

package myenum;public class Test {public static void main(String[] args) {//Day类中访问了一个对象,Day类中有七个对象MyDay day = MyDay.monday;}
}

枚举代码示例:
枚举类-Day

package myenum;public enum Day{//描述了 7 个当前类的对象monday("星期一",1),tuesday,wednesday,thursday,friday,saturday,sunday;//定义的相关属性private String name;private int index;//属性的 get/set 方法public String getName() {return name;}public void setName(String name) {this.name = name;}public int getIndex() {return index;}public void setIndex(int index) {this.index = index;}//无参构造方法Day() {}//有参构造方法Day(String name, int index) {this.name = name;this.index = index;}
}

Test类:

package myenum;import java.util.Date;public class Test {public static void main(String[] args) {Day day = Day.monday;//day对象 除了继承自Object类外,还默认继承Enum类。默认继承Enum,间接继承ObjectString name = day.name();System.out.println(name);//获取单个枚举对象Day day1 = Day.valueOf("thursday");System.out.println(day1);//获取所有的枚举对象Day[] days = Day.values();for (Day value : days) {System.out.println(value +"--"+value.ordinal());}Day friday = Day.friday;friday.setName("星期五");String name1 = friday.getName();System.out.println(name1);}
}

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

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

相关文章

C++ BuilderXE10 关于Intraweb关于IWTemplateProcessorHTML1操作

1、端口设置,port参数修改端口号。 2、初始化设置成ciMultiThreaded。这样可以避免ADO组件的加载错误。 3、IWTemplateProcessorHTML1设置, IWForm1->LayoutMgr IWTemplateProcessorHTML1;//关联模板(IWForm1. html) IWTemplateProcessorHTML1->RenderStyles…

很想写一个框架,比如,spring

很想写一个框架,比如,spring。 原理很清楚,源码也很熟悉。 可惜力不从心,是不是可以找几个小弟一起做。

缓存和数据库,1+1如何大于2?

一、缓存的本质 缓存,简单说就是为了节约对原始资源重复获取的开销,而将结果数据副本存放起来以供获取的方式。 首先,缓存往往针对的是“资源”。我们前面已经多次提到过,当某一个操作是"幂等"的和“安全"的&#…

2024年原创深度学习算法项目分享

原创深度学习算法项目分享,包括以下领域: 图像视频、文本分析、知识图谱、推荐系统、问答系统、强化学习、机器学习、多模态、系统界面、爬虫、增量学习等领域… 有需要的话,评论区私聊

C语言中的难点

C语言把内存划分成四个区,它把一般的变量和数组等存在于内存中的栈区,全局变量在静态区若指针没有被初始化,那么指针可能会指向任何内存位置,这样可能会导致程序崩溃或者行为不确定,野指针就是指针指向的位置是不可知的(随机的、不…

搭建FTP服务器

目录 一、FTP 1.1 FTP简介 1.2 FTP服务器搭建 1.2.1 前提 1.2.2 创建组 1.2.3 创建用户 1.2.4 安装FTP服务器 1.2.5 配置FTP服务器 1.2.6 配置FTP的文件夹权限 1.2.7 连接测试 1.2.8 允许外部访问 二、计算机端口介绍 2.1 端口简介 2.2 开启端口 2.3 端口相关 2…

【单元测试】使用Gradle运行@SpringBootTest单元测试提示“No tests found for given includes。。。 “解决

问题: 在IntelliJ IDEA中运行Gradle服务的单元测试时报错 错误提示: Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:test’. No tests found for given includes: [DemoTest.queryStri…

探索PySimpleGUI:一款简洁易用的图形用户界面库

目录 PySimpleGUI 安装使用 代码框架 常用控件 Text Input Button 布局方法 事件循环 示例代码 调试窗口 主题 theme Listbox控件 简单实例 小结 PySimpleGUI PySimpleGUI是一个基于Tkinter、WxPython、Qt等底层库构建的图形界面框架,其设计目标是使…

图像分割实战-系列教程4:unet医学细胞分割实战2(医学数据集、图像分割、语义分割、unet网络、代码逐行解读)

🍁🍁🍁图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 上篇内容: unet医学细胞分割实战1 下篇内容: unet医学细胞分割实战3 3、指…

再薅!Pika全球开放使用;字节版GPTs免费不限量;大模型应用知识地图;MoE深度好文;2024年AIGC发展轨迹;李飞飞最新自传 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 👀 终于!AI视频生成平台 Pika 面向所有用户开放网页端 https://twitter.com/pika_labs Pika 营销很猛,讲述的「使…

qt中信号槽第五个参数

文章目录 connent函数第五个参数的作用自动连接(Qt::AutoConnection)直接连接(Qt::DirectConnection - 同步)同线程不同线程 队列连接(Qt::QueuedConnection - 异步)同一线程不同线程 锁定队列连接(Qt::BlockingQueuedConnection) connent函数第五个参数的作用 connect(const …

LSTM Siamese neural network

本文中的代码在Github仓库或Gitee仓库中可找到。 Hi, 你好。我是茶桁。 大家是否还记得,在「核心基础」课程中,我们讲过CNN以及LSTM。 卷积神经网络(CNN)已经在计算机视觉处理中得到广泛应用,不过,2017年…

Shell脚本自动化部署LAMP环境

[rootlocalhost ~]# vim liang.sh #!/bin/bash# LAMP终极部署cat <<-EOF-------------------------------------------------------------------------| LAMP终极部署 V1.0 |-------------------------------------------------------------------------| a. 部署Apache服…

Go 泛型之明确使用时机与泛型实现原理

Go 泛型之明确使用时机与泛型实现原理 文章目录 Go 泛型之明确使用时机与泛型实现原理一、引入二、何时适合使用泛型&#xff1f;场景一&#xff1a;编写通用数据结构时场景二&#xff1a;函数操作的是 Go 原生的容器类型时场景三&#xff1a;不同类型实现一些方法的逻辑相同时…

pycharm python环境安装

目录 1.Python安装 2.PyQt5介绍 3.安装pyuic 4.启动designer.exe 5.pyinstaller(打包发布程序) 6.指定源安装 7.PyQt5-tools安装失败处理 8.控件介绍 9.错误记录 1.NameError: name reload is not defined 10.开发记录 重写报文输出和文件 ​编辑 1.Python安装 点…

docker里面不能使用vim的解决办法

docker里面不能使用vim的解决办法 目录 docker里面不能使用vim的解决办法 1.在使用时会出现 2.在使用这些都不能解决的时候考虑 3.测试是否可用 1.在使用时会出现 bash: vim: command not found 出现这种错误时首先考虑使用 apt-get update 然后在用 apt-get install …

Oracle中decode函数详解

Oracle中decode函数详解 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将深入探讨Oracle数据库中的DECODE函数&#xff0c;这是一种强大的条件…

大模型入门0: 基础知识

transformerscaling law分布式训练 自然语言处理包括几大任务 NLP: 文本分类&#xff0c;词性标注&#xff0c;信息检索NLG&#xff1a;机器翻译&#xff0c;自动摘要&#xff0c;问答QA、对话机器ChatBot Transformer T5 Bert GPT in context learning: (zero-shot tra…

vue3中pinia的使用及持久化(详细解释)

解释一下pinia&#xff1a; Pinia是一个基于Vue3的状态管理库&#xff0c;它提供了类似Vuex的功能&#xff0c;但是更加轻量化和简单易用。Pinia的核心思想是将所有状态存储在单个store中&#xff0c;并且将store的行为和数据暴露为可响应的API&#xff0c;从而实现数据&#…

cnn lstm结合网络

目录 特征处理例子&#xff1a; cnn 5张图片一组&#xff0c;提取特征后&#xff0c;再给lstm&#xff0c;进时间序列分类。 特征处理例子&#xff1a; import torch# 假设 tensor 是形状为 15x64 的张量 tensor torch.arange(15 * 2).reshape(15, 2) # 生成顺序编号的张量&…