首页 > 其他分享 >枚举

枚举

时间:2024-08-07 19:54:24浏览次数:13  
标签:return String double enum 枚举 public

枚举的定义

在Java中,枚举(enum)是一种特殊的类,它可以用来定义一组常量。枚举类型是Java语言的关键字,用于定义枚举类型。枚举类型提供了一种方式,可以保证变量的值只能是预定义的常量集合中的一个。以下是枚举的一些基本特性和用法:

定义枚举:

枚举类型定义使用 enum 关键字

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

枚举声明

在zJava中,枚举(enum)是一种特殊的类类型,它允许你定义一组固定的常量。以下是枚举的声明和一些相关的高级特性:

基本枚举声明

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

带属性的枚举

枚举可以有自己的属性,通过在枚举常量中定义构造函数参数来实现:

public enum Day {
    SUNDAY("Sunday"), MONDAY("Monday"), TUESDAY("Tuesday"), 
    WEDNESDAY("Wednesday"), THURSDAY("Thursday"), 
    FRIDAY("Friday"), SATURDAY("Saturday");

    private final String dayName;

    private Day(String dayName) {
        this.dayName = dayName;
    }

    public String getDayName() {
        return dayName;
    }
}

枚举方法

枚举可以有自己的方法,包括抽象方法:

public enum Operation {
    PLUS {
        public double apply(double x, double y) {
            return x + y;
        }
    },
    MINUS {
        public double apply(double x, double y) {
            return x - y;
        }
    };

    // 抽象方法声明
    public abstract double apply(double x, double y);
}

实现接口的枚举

枚举也可以实现接口:

public interface Colored {
    String getColor();
}

public enum TrafficLight implements Colored {
    RED("Red"), YELLOW("Yellow"), GREEN("Green");

    private final String color;

    TrafficLight(String color) {
        this.color = color;
    }

    @Override
    public String getColor() {
        return color;
    }
}

枚举构造函数

枚举的构造函数不能被声明为 publicprotected,它们隐式地是 private 的,并且只能由枚举本身调用:

public enum Season {
    SPRING("Spring", 3),
    SUMMER("Summer", 6),
    AUTUMN("Autumn", 9),
    WINTER("Winter", 12);

    private final String seasonName;
    private final int middleMonth;

    Season(String seasonName, int middleMonth) {
        this.seasonName = seasonName;
        this.middleMonth = middleMonth;
    }

    // Getters
    public String getSeasonName() {
        return seasonName;
    }

    public int getMiddleMonth() {
        return middleMonth;
    }
}

枚举实例字段

枚举常量可以有自己的实例字段:

public enum Planet {
    MERCURY(3.303e+23, 2.4397e6),
    VENUS(4.869e+24, 6.0518e6),
    EARTH(5.976e+24, 6.37814e6),
    MARS(6.421e+23, 3.3972e6),
    JUPITER(1.9e+27, 7.1492e7),
    SATURN(5.688e+26, 6.0268e7),
    URANUS(8.686e+25, 2.5559e7),
    NEPTUNE(1.024e+26, 2.4746e7);

    private final double mass;   // in kilograms
    private final double radius; // in meters

    Planet(double mass, double radius) {
        this.mass = mass;
        this.radius = radius;
    }

    public double getMass() {
        return mass;
    }

    public double getRadius() {
        return radius;
    }
}

枚举的顺序

枚举常量声明的顺序也定义了它们迭代的顺序,可以通过 values() 方法获取:

for (Planet p : Planet.values()) {
    System.out.println(p);
}

枚举提供了一种类型安全的方式来组织一组相关的常量,并且可以包含字段、方法和构造函数,使得它们比传统的整型常量更加强大和灵活。

标签:return,String,double,enum,枚举,public
From: https://www.cnblogs.com/luoyiwen123/p/18347805

相关文章

  • 洛谷B3621枚举元组
    一道经典dfs题,很简单就是让你求1~k能组成多少个n位数。当然耐心足够的朋友可以尝试打表。dfs思路:1.定义数组a来存储每一次的组合,其中a[i]表示第i位的数字;3.递归一定要设定终止条件:如果枚举到了n+1位时,输出数组a并returnCode#include<bits/stdc++.h>usingnamespa......
  • 枚举
    枚举枚举(Enum)是Java中一种特殊的数据类型,它允许程序员定义一个有限的、可枚举的数据集。枚举类型提供了一种更强大、更安全和更易读的方式来表示一组相关的常量。以下是关于Java中枚举的详细解释:一、枚举的定义在Java中,枚举类型是通过使用enum关键字来定义的。枚举类型的定义通......
  • 枚举
    枚举1.枚举的定义Java中的枚举(Enumeration)是一种特殊的数据类型,用于定义一组有限的命名常量。枚举提供了一种更直观、更可读的方式来表示一组相关的常量,并且可以为这些常量绑定其他数据或行为。枚举是在JDK1.5(Java5)以后引入的,它是对之前使用常量(如publicstaticfinal变量)表示......
  • 枚举声明
    枚举Java枚举知识点概念enum的全称为enumeration,是JDK1.5中引入的新特性。在Java中,被enum关键字修饰的类型就是枚举类型。形式如下:enumColor{RED,GREEN,BLUE}如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以Color枚举类型举例,它的枚举常量依......
  • C语言day11(string函数族、递归函数、结构体、共用体、枚举)
    【1】string函数族1.strlen头文件:#include<string.h>格式:size_tstrlen(constchar*s);功能:计算字符串实际长度,不包括\0参数:s:目标字符串首地址返回值:字符串实际长度2.strcpy    头文件:#include<string.h>    格式:char*strcpy(char*dest,......
  • 可用于机器学习的排列组合枚举算法含passcal - c shap-c源码
    可用于机器学习的排列组合枚举算法含passcal-cshap-c源码1机器学习和数据挖掘• 特征选择:在机器学习中,需要从多个特征中选择最有价值的组合。通过枚举不同的特征组合,可以找到最佳的特征集合。• 超参数优化:在训练模型时,需要调整多个超参数。通过枚举不同的超参数组......
  • C自定义类型(结构体,联合体,枚举)详解
            在C语言中,数据类型可以分为内置类型(charshortintlongfloatdouble...)和自定义类型。内置类型是由编程语言本身定义的基本数据类型,而自定义类型是由程序员根据需要创建的数据类型。    自定义类型:  结构体,联合体(共用体),枚举。结构体:用于组......
  • 枚举
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceMR.View{classProgram{enumenXingQi{星期一=1,星期二=2,星期三=3,星期四=4,......
  • java基础6—抽象类、接口、枚举
    1.抽象类1.1简介        由于继承这个显著特点,我们可以将子类设计的更加具体,而父类更加一般化,通用化。父类可以封装不同子类的共同特征或者共同行为。而有的时候,父类中封装的方法无法具体完成子类中需要的逻辑,因此我们可以将此方法设计成抽象方法,即使用关键字abstra......
  • 枚举知识点(完结)
    枚举文章目录枚举枚举定义枚举类的实现枚举类的属性枚举类的创建创建代码常用方法枚举定义Java枚举是一个特殊类,一边表示一组常量,比如一年的4个季节,一年的12个月份,一个星期的七天,方向有东南西北等类的对象只有有限个,确定的性别:男,女枚举类的实现JDK1.5之前需要......