第一百二十七节 Java面向对象设计 - Java枚举方法

Java面向对象设计 - Java枚举方法

因为枚举类型实际上是一个类类型,所以我们可以在枚举类型体中声明一切,我们可以在类体中声明它。

以下代码使用字段,构造函数和方法定义了一个级别枚举。

public enum Level {LOW(30), MEDIUM(15), HIGH(7), URGENT(1);// Declare an instance variableprivate int levelValue;// Declare a private constructorprivate Level(int levelValue) {this.levelValue = levelValue;}public int getLevelValue() {return levelValue;}
}

上面的代码声明了一个实例变量 levelValue ,它将为每个枚举常量存储一个值。

它还定义了一个私有构造函数,它接受一个int参数。它将其参数的值存储在实例变量中。

我们可以向枚举类型添加多个构造函数。

我们不能向枚举类型添加公共或受保护的构造函数。

级别枚举声明一个公共方法getLevelValue()。

枚举常量声明已更改为

LOW(30), MEDIUM(15),  HIGH(7),  URGENT(1);

现在每个枚举常量名称后面都跟着括号中的整数值。 LOW(30)是调用int参数类型的构造函数的缩写。

当创建枚举常量时,括号中的值将被传递给我们添加的构造函数。

LOW调用默认的无参数构造函数,而LOW(30)使用参数调用构造函数。

例子

以下代码测试Level枚举类型。它打印常量的名称,它们的序数和它们的下划线值。

enum Level {LOW(30), MEDIUM(15), HIGH(7), URGENT(1);// Declare an instance variableprivate int levelValue;// Declare a private constructorprivate Level(int levelValue) {this.levelValue = levelValue;}public int getLevelValue() {return levelValue;}
}public class Main {public static void main(String[] args) {for (Level s : Level.values()) {String name = s.name();int ordinal = s.ordinal();int underLine = s.getLevelValue();System.out.println("name=" + name + ",  ordinal=" + ordinal + ", underLine="+ underLine);}}
}

上面的代码生成以下结果。


 

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

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

相关文章

2024年好用的加密工具,迅软DSE加密系统原来这么强大

加密软件具有灵活的加密方式和用户友好的操作界面,可定制个性化的安全方案,同时支持数据备份和恢复功能,确保数据的完整性和可用性,是保护数据安全、维护商业机密、防范信息泄露的重要工具。 2024好用的加密工具是哪个&#xff1f…

云计算:未来科技的基石

目录 什么是云计算? 云计算的分类 1. 基础设施即服务 (IaaS) 2. 平台即服务 (PaaS) 3. 软件即服务 (SaaS) 云计算的优势 1. 成本效益 2. 灵活性和可扩展性 3. 高可用性和可靠性 4. 创新和快速迭代 云计算的应用场景 1. 数据存储和备份 2. 大数据分析 3…

MySQL——基本的Select语句和别名使用

DQL (Data Query Language:数据查询语言) 所有的查询操作都用它 Select 简单或者复杂的查询都能做 数据库中最核心的语言,最重要的语句 使用频率最高的语言 指定查询字段 -- 查询全部的学生 SELECT 字段 FROM 表…

【SpringCloud-Seata客户端源码分析01】

文章目录 启动seata客户端1.导入依赖2.自动装配 发送请求的核心方法客户端开启事务的核心流程服务端分布式事务的处理机制 启动seata客户端 1.导入依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent…

【DS Solutions】一个反欺诈产品的进化,Stripe Radar

Stripe Radar 是 Stripe 提供的一项防欺诈服务&#xff0c;它利用机器学习技术来帮助商家检测和阻止信用卡欺诈行为。这篇文章是Stripe公司关于其反欺诈解决方案Stripe Radar的构建过程的介绍。文章从Stripe的防欺诈团队工程师的角度出发&#xff0c;详细讲述了Stripe Radar的工…

车辆数据的提取、定位和融合 精确车辆定位(其三.一 共十二篇)随机复合

第一篇&#xff1a; System Introduction 第二篇&#xff1a;State of the Art 第三篇&#xff1a;localization 第四篇&#xff1a;Submapping and temporal weighting 第五篇&#xff1a;Mapping of Point-shaped landmark data 第六篇&#xff1a;Clustering of landma…

礼让,不是一昧地退让,而是表达我们的素养、品德

礼 / 让&#xff0c;发心是文明相处&#xff0c;互助互让&#xff0c;是君子之交

覆盖容器的默认设置

覆盖容器都默认设置 目录 覆盖网络端口设置环境变量限制容器资源使用试一试 运行多个 Postgres 数据库实例在受控网络中运行 Postgres 容器管理资源在 Docker Compose 中覆盖默认的 CMD 和 ENTRYPOINT使用 docker run 覆盖默认的 CMD 和 ENTRYPOINT 额外资源下一步 当 Docker…

UnityShader SDF有向距离场简单实现

UnityShader SDF有向距离场简单实现 前言项目场景布置连连看画一个圆复制一个圆计算修改shader参数 鸣谢 前言 突然看到B站的一个教程&#xff0c;还不错&#xff0c;记录一下 项目 场景布置 使用ASE连连看&#xff0c;所以先要导入Amplify Shader Editor 连连看 画一个…

面试-JMM的内存可见性

1.JAVA内存模型 分析&#xff1a; 由于JVM运行程序的实体是线程&#xff0c;而每个线程创建时&#xff0c;JVM都会 为其创建一个工作内存(栈空间),用于存储线程私有的数据。而java内存模型中规定所有变量都存储在主内存中。主内存是共享内存区域&#xff0c;所有线程都可以访问…

Python-PDF文件密码破解小工具

背景 经常从网络上下载的PDF笔记被加了密&#xff0c;在自己学习的过程中想要添加书签却因为没有密码无法添加&#xff0c;所以通过Python实现一个解密小工具&#xff0c;亲测大多数密码都可以破解。 代码 import os import tkinter as tk from tkinter import filedialog #…

你还不知道Modbus RTU???

1. 什么是Modbus RTU Modbus RTU&#xff08;Remote Terminal Unit&#xff09;是Modbus通信协议的一种变种&#xff0c;用于串行通信。它是一种常见的工业控制系统通信协议&#xff0c;通常用于采集传感器数据、控制执行器和监控设备状态。Modbus RTU采用二进制编码&#xff0…

基于ruoyi-app的手机短信登录(uniapp)

本篇用于记录h5的框架搭建 组件地址:短信验证码登陆&#xff0c;手机号&#xff0c;验证码倒计时 - DCloud 插件市场 调整后的表单组件代码: <template><view class"login-view"><!-- <input type"tel" confirm-type"确认"…

073、类的三大特征初识

&#xff08;1&#xff09;继承 类之间可以通过继承建立父子关系&#xff0c;子类可以继承父类的属性和方法&#xff0c;并可以添加自己的特定属性和方法。如下是一个简单示例&#xff1a; class Student(Person):def __init__(self, name, age, student_id):super().__init_…

Follow Carl To Grow|【LeetCode】93.复原IP地址,78.子集,90.子集II

【LeetCode】93.复原IP地址 题意&#xff1a;有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 ‘.’ 分隔。 例如&#xff1a;“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址&…

【深度学习】实现基于MNIST数据集的TensorFlow/Keras深度学习案例

基于TensorFlow/Keras的深度学习案例 实现基于MNIST数据集的TensorFlow/Keras深度学习案例0. 什么是深度学习&#xff1f;1. TensorFlow简介2. Keras简介3. 安装TensorFlow前的注意事项4. 安装Anaconda3及搭建TensorFlow环境1&#xff09; 下载安装Anaconda Navigator2&#xf…

go语言day06 数组 切片

数组 : 定长且元素类型一致,在索引逻辑上连续存储,数组的内存地址是存储的第一个元素的内存地址 几种创建方式: 仅声明 var nums [ 3 ] int 声明并赋值 var nums [ 2 ] string {"武沛齐","alex"} 声明并按下标赋值 var nums [ 3 ] int {0:88,2:1 } 省略…

ffmpeg+nginx+video实现rtsp流转hls流,web页面播放

项目场景&#xff1a; 最近调试海康摄像头需要将rtsp流在html页面播放,因为不想去折腾推拉流&#xff0c;所以我选择ffmpeg转hls流&#xff0c;nginx转发&#xff0c;html直接访问就好了 1.首先要下载nginx和ffmpeg 附上下载地址&#xff1a; nginx nginx news ffmpeg htt…

HttpServletRequest・getContentLeng・getContentType区别

getContentLength()&#xff1a; 获取客户端发送到服务器的HTTP请求主体内容的字节数&#xff08;长度&#xff09; 如果请求没有正文内容&#xff08;如GET&#xff09;&#xff0c;或者请求头中没有包含Content-Length字段&#xff0c;则该方法返回 -1 getContentType()&am…

eclipse中svn从分支合并到主干及冲突解决

1、将分支先commit&#xff0c;然后再update&#xff0c;然后再clean一下&#xff0c;将项目多余的target都清理掉。 2、将branches切换到trunk 3、工程上右键-》Team-》合并&#xff08;或Merge&#xff09; 4、默认选项&#xff0c;点击Next 5、有未提交的改动&#xff0c;…