枚举 --java学习笔记

什么是枚举

枚举是一种特殊类

格式:

修饰符 enum 枚举类名{

        名称1,名称2,...;        //枚举类的第一行必须罗列的是枚举对象的名字

        其他成员...

}

  • 枚举类的第一行只能罗列一些名称,这些名称都是常量,并且每个常量记住的都是枚举类的一个对象
  • 枚举类的构造器都是私有的(写不写都只能是私有的),因此,枚举类对外不能创建对象
  • 枚举都是最终类,不可以被继承
  • 枚举类中,从第二行开始,可以定义类的其他各种成员
  • 编译器为枚举类新增了几个方法,并且枚举类都是继承:java.lang.Enum类的,从enum类也会继承到一些方法
  • 枚举的应用场景:做信息标志和分类

例:

public enum A {
    A,B,C;  //罗列枚举对象的名字
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public void Myname(){
        System.out.println(this.name);
    }
}
public class Test {
    public static void main(String[] args) {
        A a = A.B;  //枚举类对象创建,使用罗列的枚举对象名字
        a.setName("小明");    //类方法正常使用
        a.Myname();

        //编译器为枚举类新增的和从enum类继承到的一些方法
        A[] as = A.values();    //拿到全部对象
        A a2 = A.valueOf("C");  //根据名字拿到对象
        System.out.println(a2.name());   //拿到对象名字 C
        System.out.println(a2.ordinal());   //拿到对象索引 2,也就是罗列名字时的顺序,从0开始
    }
}

 

抽象枚举

也就是带有抽象方法的枚举类,需要在罗列对象名字时实现该抽象方法

例:

public enum B { //抽象枚举
    X{
        @Override   //实现抽象方法
        public void say() {

        }
    }
    ,Y("小明"){   //通过有参构造器赋初值
        @Override
        public void say() {
            System.out.println("我是"+getName());
        }
    };

    private String name;

    B() {
    }

    B(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public abstract void say(); //抽象方法

}
public class Test2 {
    public static void main(String[] args) {
        B b = B.Y;
        b.say();
    }
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为什么不用 index 做 key?

“在 Vue 中,我们在使用 v-for 渲染列表的时候,为什么要绑定一个 key?能不能用 index 做 key?” 在聊这个问题之前我们还得需要知道 Vue 是如何操作 DOM 结构的。 虚拟DOM 我们知道,Vue 不可以直接操作 DOM 结构&am…

vscode 使用ssh进行远程开发 (remote-ssh),首次连接及后续使用,详细介绍

在vscode添加remote ssh插件 首次连接 选择左侧栏的扩展,并搜索remote ssh 它大概长这样,点击安装 安装成功后,在左侧栏会出现远程连接的图标,点击后选择ssh旁加号便可以进行连接。 安装成功后vscode左下角会有一个图标 点击图…

LCR 185. 统计结果概率

解题思路: 动态规划 逆向推理会有越界问题, 若希望递推计算 f(2,2),由于一个骰子的点数和范围为 [1,6] ,因此只应求和 f(1,1) ,即 f(1,0) , f(1,−1) , ... , f(1,−4) 皆无意义。 故采用正向推理,如下图…

三八妇女节智慧花店/自动售花机远程视频智能监控解决方案

一、项目背景 国家统计局发布的2023年中国经济年报显示,全年社会消费品零售总额471495亿元,比上年增长7.2%。我国无人零售整体发展迅速,2014年市场规模约为17亿元。无人零售自助终端设备市场规模超过500亿元,年均复合增长率超50%。…

C#实现快速排序算法

C#实现快速排序算法 以下是C#中的快速排序算法实现示例: using System;class QuickSort {// 快速排序入口函数public static void Sort(int[] array){QuickSortRecursive(array, 0, array.Length - 1);}// 递归函数实现快速排序private static void QuickSortRecu…

IonIa: High-Performance Replication for Modern Disk-based KV Stores——论文泛读

FAST 2024 Paper 论文阅读笔记整理 问题 键值存储在数据中心应用程序中发挥着核心作用,许多KV存储都是使用写优化索引(WOI)(如LSM[58])构建的,称为WO-KV存储。最近的WO-KV存储针对现代SSD进行了优化&…

python: import用法

目录 1.import1.1从当前文件夹下1.2从python库目录中导入库2.使用1.3 总结1.4 2.定义参考: 1.import 常用 1.1从当前文件夹下 1.2从python库目录中导入库 在控制台通过pip install 库名的命令安装库,库将被安装到python文件夹的库目录下。 2.使用 …

用 ChatGPT 帮自己修英文简历 — 程序员篇

写英文简历一直是许多人的痛处,怎么写得文法正确又吸引人,对于不是英文母语人士的人,是相当困难的。即使网路上有很多教学文,但看完之后还是不知道该怎么描述。导致很多人最后还是去找简历编修。不过现在有了 ChatGPT 这类 AI 工具…

离散数学——(3)联结词及对应的真值指派,最小全功能联结词集,对偶式,范式,范式存在定理,小项

目录 1.联结词及对应的真值指派 2.最小全功能联结词集 3.对偶式 4.范式 1.析取范式 5.范式存在定理 6.小项 1.联结词及对应的真值指派 2.最小全功能联结词集 3.对偶式 4.范式 1.析取范式 5.范式存在定理 6.小项

20个Python函数程序实例

前面介绍的函数太简单了: 以下是 20 个不同的 Python 函数实例 下面深入一点点: 以下是20个稍微深入一点的,使用Python语言定义并调用函数的示例程序: 20个函数实例 简单函数调用 def greet():print("Hello!")greet…

连接kafka报错:java.io.IOException: Can‘t resolve address:

修改电脑host文件:C:\Windows\System32\drivers\etc\hosts 加上一行 192.168.1.XXX MHA_SLAVE2(192.168.1.XXX 这个是安装kafka 的服务器地址,MHA_SLAVE2是kafka的容器id)

国家妇女节放假是法定的假日

在这个充满活力和希望的春天,我们迎来了一个特殊的节日——国家妇女节。这是一个属于所有女性的节日,是一个庆祝女性成就、关爱女性权益的时刻。在这个特殊的日子里,我们不禁要问:国家妇女节放假是法定假日吗?让我们一…

Vscode连接远程服务器失败解决方案

一、 could not establish connection to “XXX” 尝试使用Remote-SSH插件连接远程的服务器,但是配置显示出错,端口显示试图写入的管道不存在,弹出窗口显示could not establish connection to “XXX” 二、检查Windows的OpenSSH 1.检索是否…

centos设置SSH密钥认证,使用scp命令复制文件

1)本地查看是否已经生成SSH密钥(id_rsa、id_rsa.pub代表已经有SSH密钥):ls ~/.ssh 2)本地生成SSH密钥对(我这边3个直接回车):ssh-keygen -t rsa 3)将本地公钥(/root/.ssh…

Python数据处理实战(5)-上万行log数据提取并分类进阶版

系列文章: 0、基本常用功能及其操作 1,20G文件,分类,放入不同文件,每个单独处理 2,数据的归类并处理 3,txt文件指定的数据处理并可视化作图 4,上万行log数据提取并作图进阶版 …

【Linux】iftop命令详解

目录 一、iftop简介 二、安装iftop命令 2.1 命令查看测试环境系统信息 2.2 查看iftop版本与命令帮助 三、iftop的基本使用 3.1 直接使用iftop命令 3.2 iftop的显示说明 3.3 指定监控某块网卡 3.4 显示某个网段进出封包流量 3.5 按照流量排序 3.6 过滤显示连接 3.7 …

基于单片机的老人防丢系统设计

目 录 摘 要 I Abstract II 引 言 3 1 系统总体架构 6 1.1方案设计与选择 6 1.2 系统架构设计 6 1.3 系统器件选择 7 2 系统硬件设计 9 2.1 单片机外围电路设计 9 2.2 LCD1602液晶显示电路设计 12 2.3 短信模块电路设计 14 2.4 GPS模块电路设计 14 2.5 电源与按键控制电路设计…

OpenStack之Nova

一 、Nova 使用OpenStack Compute来托管和管理云计算系统。 OpenStack Compute是基础架构即服务 (IaaS)系统的主要部分。 主要模块在Python中实现: 1因为认证,与OpenStack 身份认证keystone 交互。 2因为磁盘和服务器镜像&#xf…

红酒:酿造过程中的设备升级与技术革新

随着科技的不断进步,葡萄酒酿造行业也在经历着设备升级与技术革新的浪潮。云仓酒庄作为业界的持续发展者,始终关注行业动态,积极引入创新的酿造设备和技术,以提升雷盛红酒系列的品质和生产效率。本文将和云仓酒庄雷盛红酒一起探讨…

在钉钉群中添加极狐GitLab 机器人

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 可以在钉钉群中添加极狐GitLab 机器人实现消息通知&#xff0c…