• Java-枚举


    枚举

    Java中的枚举是一种特殊的类,它用于定义一组有限的常量。
    枚举在Java中被视为数据类型,你可以使用它们来创建枚举类型的变量,然后使用那些变量等。

    枚举类使用enum关键字进行定义。

    例如:在这个例子中,我们定义了一个名为Day的枚举类,它包含了一周的七天作为常量。

    public enum Day {  
        SUNDAY, MONDAY, TUESDAY, WEDNESDAY,   
        THURSDAY, FRIDAY, SATURDAY   
    }
    
    • 1
    • 2
    • 3
    • 4


    定义枚举类时,需要遵循以下规则

    1. 枚举类中只能包含常量和方法,以及构造函数。
    2. 枚举常量必须是public static final类型,每个常量的名称必须唯一。
    3. 枚举类中可以定义构造函数和方法,但这些方法只能访问枚举常量和实例变量。
    4. 枚举常量按照它们的声明顺序在枚举类中进行排序。
    5. 枚举类不能继承其他类或实现接口。
    6. 枚举常量的名称必须是唯一的,不能重复。
    7. 枚举类的构造函数只能有一个,且必须为private类型。
    8. 枚举类中不能使用继承和多态等特性。

    使用

    枚举类型在实际中主要用于以下几个方面:

    1. 定义有限个特定的值:枚举可以用来定义一组有限的特定的值,例如一周的天数,或者颜色等。这些值在程序运行期间是不会改变的。
    2. 作为方法的参数:枚举可以作为方法的参数,这样可以让代码更加清晰,易于阅读和维护。例如,你可以定义一个枚举类型来表示不同的排序方式,然后在方法中使用这个枚举作为参数。
    3. 作为返回类型和参数类型:枚举可以作为方法的返回类型和参数类型。例如,你可以定义一个方法来获取一个枚举类型的列表,或者传递一个枚举类型的对象作为参数。

    例如:在这个例子中,我们定义了一个枚举SortType来表示不同的排序方式。
    这个枚举有两个值:ASC和DESC,分别表示升序和降序。我们还为每个值提供了一个字符串描述。

    public enum SortType {  
        ASC("升序"), DESC("降序");  
      
        private String value;  
      
        SortType(String value) {  
            this.value = value;  
        }  
      
        public String getValue() {  
            return value;  
        }  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    然后我们可以像下面这样使用这个枚举:

    SortType type = SortType.ASC; // 使用 SortType 作为变量类型  
    System.out.println(type.getValue()); // 输出 "升序"
    
    • 1
    • 2

    或者在方法中使用:

    public void sortData(SortType type) {  
        // 根据 type 进行排序  
        // ...  
    }  
    // 调用方法时使用枚举作为参数  
    sortData(SortType.ASC);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6


    优缺点

    优点:

    1. 安全:使用枚举可以防止错误地使用无效的值。如果一个方法只接受有限个特定的值作为参数,那么使用枚举可以确保传入的参数是有效的。如果试图传入一个无效的值,编译器将会报错。
    2. 可读性和可维护性:使用枚举可以使代码更加清晰和易于阅读。每个枚举值都可以有一个有意义的名称,而不是一个难以理解的数字或者字符串。同时,如果需要添加新的枚举值,只需要在枚举类中添加新的实例,而不需要修改现有的代码。
    3. 性能:使用枚举可以提高性能。因为枚举值是静态的,所以它们可以在编译期间被解析和优化。相比之下,如果使用一个字符串或者整数来表示相同的信息,那么这些值需要在运行时解析和比较。

    缺点:

    1. 占用空间:每个枚举值都会在内存中占用一定的空间。虽然这可能不会对单个程序造成太大的影响,但是如果在一个大型的项目中使用大量的枚举值,那么这可能会成为一个问题。
    2. 可能产生过度设计:如果过度使用枚举,可能会导致代码变得过于复杂和难以维护。例如,如果在一个方法中使用一个包含大量枚举值的列表,那么这可能会使代码变得难以理解和维护。


    方法

    枚举类存在的方法,具体详见JavaApi文档1.8
    在这里插入图片描述

  • 相关阅读:
    【Unity Shader​】 屏幕后处理5.0:讨论双重模糊的Bloom
    C++ STL迭代器失效问题
    17. 线性代数 - 矩阵的逆
    微信小程序列表渲染
    Springboot 音乐网站管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
    【开发日记】MySQL-Explain学习日记
    基于全志H3的QT5.12.9移植教程
    Python批量保存Excel文件中的图表为图片
    centos——记录一次开机启动设置
    八皇后问题的解析与实现
  • 原文地址:https://blog.csdn.net/Lion__king/article/details/134034586