Java的枚举

枚举的概念

在 Java 中,枚举(Enumeration)是一种特殊的数据类型,用来表示一组有限的常量。Java 枚举是由一组预定义的常量值组成,每个常量都有一个名称和一个值。Java 枚举通常用来表示一组相关的常量,例如月份、星期等。

枚举的声明和用法

枚举的声明

在 Java 中,使用 enum 关键字来声明一个枚举类型。

enum Season {
    SPRING, SUMMER, AUTUMN, WINTER
}

在上面的例子中,我们声明了一个枚举类型 Season,并定义了四个常量:SPRING、SUMMER、AUTUMN 和 WINTER,这些常量被称为该枚举类型的枚举值。

枚举的用法

在 Java 中,可以直接使用枚举值来进行赋值、比较、输出等操作。以下是一些枚举的用法示例:

  • 赋值:
Season s = Season.SPRING;
  • 比较:
if (s == Season.SPRING) {
    // ...
}
  • 输出:
System.out.println(s);

枚举类型也可以作为方法的参数和返回值类型,例如:

public static Season getSeason(int month) {
    Season season;
    switch(month) {
        case 1:
        case 2:
        case 3:
            season = Season.SPRING;
            break;
        case 4:
        case 5:
        case 6:
            season = Season.SUMMER;
            break;
        case 7:
        case 8:
        case 9:
            season = Season.AUTUMN;
            break;
        default:
            season = Season.WINTER;
    }
    return season;
}

在上面的例子中,我们定义了一个方法 getSeason,根据传入的参数(月份)返回一个 Season 枚举值。

枚举的方法和构造函数

枚举的方法

在 Java 中,可以在枚举类型中定义方法,这些方法在枚举值中被调用。例如:

enum Operation {
    ADD {
        @Override
        public int apply(int x, int y) {
            return x + y;
        }
    },
    SUBTRACT {
        @Override
        public int apply(int x, int y) {
            return x - y;
        }
    },
    MULTIPLY {
        @Override
        public int apply(int x, int y) {
            return x * y;
        }
    },
    DIVIDE {
        @Override
        public int apply(int x, int y) {
            return x / y;
        }
    };
    public abstract int apply(int x, int y);
}

在上面的例子中,我们定义了一个枚举类型 Operation,它的每个枚举值都实现了 apply 方法。

枚举的构造函数

在 Java 中,枚举可以有自己的构造函数,但是枚举值不能通过 new 关键字来创建。枚举的构造函数只能在枚举值内部调用,例如:

public enum Size {
    SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL");

    private String abbreviation;

    private Size(String abbreviation) {
        this.abbreviation = abbreviation;
    }

    public String getAbbreviation() {
        return abbreviation;
    }
}

在上面的例子中,我们定义了一个枚举类型 Size,它有自己的构造函数和属性。

总结

Java 枚举是一种特殊的数据类型,用来表示一组有限的常量。在 Java 中,使用 enum 关键字来声明一个枚举类型,枚举类型中的每个值都是该类型的实例,可以直接使用枚举值来进行赋值、比较、输出等操作。枚举类型也可以作为方法的参数和返回值类型。除此之外,枚举类型还可以定义自己的方法和构造函数。

你可能感兴趣的:(Java系列之打好基础,java,开发语言,枚举)