【JAVA】最容易忽视的数据类型——枚举

这篇具有很好参考价值的文章主要介绍了【JAVA】最容易忽视的数据类型——枚举。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【JAVA】最容易忽视的数据类型——枚举,初识JAVA,java,python,数据库


个人主页:【😊个人主页】
系列专栏:【❤️初识JAVA】


前言

Java枚举是一个特殊的类一般表示一组常量,比如一年的 4个季节,一年的 12 个月份,一个星期的7天,方向有东南西北等。今天就让我们来学习一下在JAVA中这个特殊的类。
【JAVA】最容易忽视的数据类型——枚举,初识JAVA,java,python,数据库

枚举

枚举是一种数据类型,用于定义一组具有相同属性的常量集合。在枚举中,每个常量都有一个名称和一个关联的值,可以通过名称或值来引用常量。枚举常用于减少代码中的魔法数字或字符串,使代码更加清晰易懂

enum Color
{
    RED, GREEN, BLUE;
}
 
public class Test
{
    // 执行输出结果
    public static void main(String[] args)
    {
        Color c1 = Color.RED;
        System.out.println(c1);
    }
}

在这个枚举中,我们定义了三个常量:RedGreenBlue。默认情况下,它们的值分别为0、1和2。我们将枚举中的Red常量分配给myColor变量,并检查myColor是否等于枚举中的Green常量。

Color myColor = Color.Red;
if (myColor == Color.Green)
{
    // ...
}

内部类里使用枚举

可以在Java内部类中使用枚举,可以通过在内部类中定义枚举类型来实现。

public class Outer {
    private int x;

    public void doSomething() {
        Inner inner = new Inner();
        inner.doSomethingElse();
    }

    private class Inner {
        private void doSomethingElse() {
            Status status = Status.IN_PROGRESS;
            // ...
        }

        private enum Status {
            IN_PROGRESS,
            COMPLETED,
            FAILED
        }
    }
}

在上面的代码中,内部类inner中定义了一个枚举类型Status。在doSomethingElse()方法中,可以创建枚举类型的实例并使用它们。

迭代枚举元素

在Java中,我们可以使用迭代器(Iterator)来枚举集合中的元素。

List<String> strings = new ArrayList<>();
strings.add("foo");
strings.add("bar");
strings.add("baz");

Iterator<String> iterator = strings.iterator();
while (iterator.hasNext()) {
    String str = iterator.next();
    System.out.println(str);
}

在这个示例中,我们首先创建了一个包含三个字符串的ArrayList。然后,我们创建一个迭代器对象,并使用while循环来遍历ArrayList中的所有元素。在每次循环迭代时,我们通过调用next()方法获取下一个元素,并将其赋值给一个字符串变量。然后,我们将该字符串打印输出。循环会一直执行,直到没有更多的元素。

需要注意的是,迭代器只能单向遍历集合,不能随意增加或删除元素。如果需要对集合进行修改操作,应该使用集合本身提供的方法进行操作。

在 switch 中使用枚举类

枚举类常应用于 switch 语句中。

public class Main {
    enum Day {
        MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
    }

    public static void main(String[] args) {
        Day day = Day.TUESDAY;

        switch (day) {
            case MONDAY:
                System.out.println("Today is Monday");
                break;
            case TUESDAY:
                System.out.println("Today is Tuesday");
                break;
            case WEDNESDAY:
                System.out.println("Today is Wednesday");
                break;
            case THURSDAY:
                System.out.println("Today is Thursday");
                break;
            case FRIDAY:
                System.out.println("Today is Friday");
                break;
            case SATURDAY:
                System.out.println("Today is Saturday");
                break;
            case SUNDAY:
                System.out.println("Today is Sunday");
                break;
            default:
                System.out.println("Invalid day");
                break;
        }
    }
}

在上面的代码中,我们定义了一个Day枚举类,其中包含一周中的每一天。在main方法中,我们创建了一个Day枚举实例,并在switch语句中使用了这个枚举实例。根据Day的不同值,我们输出不同的结果。

在使用枚举类时,switch语句必须针对枚举类型进行匹配,否则编译器会发出警告。此外,在枚举类型中必须包含一个default分支,以处理可能的无效输入。文章来源地址https://www.toymoban.com/news/detail-714976.html

到了这里,关于【JAVA】最容易忽视的数据类型——枚举的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 初识Java篇(JavaSE基础语法)(1)(数据类型+运算符)

     个人主页(找往期文章包括但不限于本期文章中不懂的知识点): 我要学编程(ಥ_ಥ)-CSDN博客 目录 前言:  初识Java  运行Java程序 注释 标识符 数据类型与变量  字面常量 数据类型 变量 类型转换  类型提升  字符串类型  运算符 算术运算符  关系运算符  逻辑运

    2024年03月24日
    浏览(51)
  • Java的枚举类型

    如果类的对象的数量只有有限个,并且可以确定对象的属性,那么考虑使用枚举类。例如: 性别:Man(男)、Woman(女) 订单状态:Nonpayment(未付款)、Paid(已付款)、Delivered(已发货)、Checked(已确认收货) 如果需要的话,可以在枚举类型中添加一些构造器、方法和域

    2024年02月04日
    浏览(70)
  • 【Java】枚举类型

    枚举类型是一种特殊的数据类型,用于定义一组固定的命名常量。枚举类型提供了一种更强大、更安全和更易读的方式来表示一组相关的常量。 在Java中,枚举类型是通过使用 enum 来定义的。枚举类型可以包含一个或多个枚举常量,每个常量都是枚举类型的实例。 枚举

    2024年02月10日
    浏览(35)
  • 【Java系列】深入解析枚举类型

    即便平凡的日子仿佛毫无波澜,但在某个特定的时刻,执着的努力便会显现出它的价值和意义。 希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言和我交流 思考一下这寄个问题,我们将围绕这三个问题来开始学习: 什么是枚举 怎么

    2024年02月06日
    浏览(31)
  • java中枚举类型使用详解

    在Java中,枚举类型(Enumeration)是一种特殊的数据类型,它允许程序员定义一个有限的、可枚举的数据集。枚举类型的定义通常在类的内部,在类的外部使用。 以下是一些关于Java中枚举类型使用的详细说明: 定义枚举类型 要定义一个枚举类型,需要使用enum。以下是

    2024年02月12日
    浏览(38)
  • AXI协议容易忽视的细节

    AXI具有5个独立的通道,每个通道都使用相同的VALID和READY的握手过程去传输地址、数据、控制信息等。双向握手带来的好处是主机和从机都可以控制传输的节奏。请求方的VALID信号的发出表示着地址、数据、控制信号的信息是有效的。应答方的READY信号的发出表示可以接收上述

    2024年02月06日
    浏览(59)
  • Effective Java笔记(3)用私有构造器或者枚举类型强化 Singleton 属性

            Singleton 是指仅仅被实例化一次的类 。Singleton 通常被用来代表一个无状态的对象,如函数,或者那些本质上唯一的系统组件 。 使类成为 Singleton会使它的害户端测试变得十分困难 ,因为不可能给 Singleton 替换模拟实现,除非实现一个充当其类型的接口 。      

    2024年02月15日
    浏览(51)
  • 《Effective Java》第三条 用私有构造器或者枚举类型强化Singleton属性

    Singleton其实就是单例,即一个类在一个应用程序中只被实例化一次,只有一个对象。 本节讨论三种实现方式 私有构造+共有成员 私有构造+静态工厂方法+私有成员 枚举实现 1、共有成员 构造方法私有,有一个该类类型的公有不可变的实例域。 1.1 code 当类加载的时候就会创建

    2024年02月16日
    浏览(37)
  • 性能调优:容易忽视的JavaScript标签属性及其性能影响

    在性能优化中,我们都知道, async 属性可以让 script 标签变得不阻塞 HTML 解析, defer 属性也有类似的功能,但实际 defer 是会阻塞 script 解析的(用 defer 的话,多个 script 会按顺序执行,而 async 执行是无序的,谁下载的快执行谁),使用 async 属性理论上讲,是要比 defer 更快的

    2024年02月21日
    浏览(48)
  • 【学习】Web测试是在测什么?有哪些容易被忽视的小细节?

    Web测试,这个看似简单的词汇,却关乎着互联网产品的质量和用户体验。那么,Web测试到底在测什么呢? 在探讨这个问题之前,让我们先了解一下Web测试的定义:Web测试是一种针对Web应用程序的测试过程,旨在发现并纠正其中的错误和缺陷,以确保产品的稳定性和可靠性。在

    2024年03月20日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包