Java枚举类通过构造函数
Java中的枚举类是一种特殊的类,它表示了一组预定义的常量。枚举类的实例通常被用作常量,而且每个实例都有一个名称。在Java中,枚举类通过定义固定数量的实例来实现,这些实例在定义时就被确定了。然而,有时候我们希望在定义枚举实例时能够传入一些初始化参数。为了实现这一点,我们可以使用构造函数来定义枚举类。
枚举类的基本概念和用法
在介绍如何通过构造函数定义枚举类之前,我们先来了解一下枚举类的基本概念和用法。
定义枚举类
在Java中,我们可以通过关键字enum
来定义一个枚举类。下面是一个简单的例子:
enum Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
在上面的例子中,我们定义了一个名为Weekday
的枚举类,它包含了七个实例:MONDAY
、TUESDAY
、WEDNESDAY
、THURSDAY
、FRIDAY
、SATURDAY
和SUNDAY
。这些实例都是Weekday
类的对象,它们的类型都是Weekday
。
使用枚举实例
一旦我们定义了枚举类,就可以使用它的实例了。下面是一个使用枚举实例的例子:
public class EnumExample {
public static void main(String[] args) {
Weekday day = Weekday.MONDAY;
System.out.println("Today is " + day);
}
}
在上面的例子中,我们定义了一个变量day
,它的类型是Weekday
,并将其赋值为Weekday.MONDAY
。然后我们使用System.out.println
方法输出了day
的值。输出结果为Today is MONDAY
。
枚举类通过构造函数
有时候我们希望在定义枚举实例时能够传入一些初始化参数。为了实现这一点,我们可以使用构造函数来定义枚举类。下面是一个使用构造函数定义枚举类的例子:
enum Size {
SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL");
private String abbreviation;
Size(String abbreviation) {
this.abbreviation = abbreviation;
}
public String getAbbreviation() {
return abbreviation;
}
}
在上面的例子中,我们定义了一个名为Size
的枚举类,它包含了四个实例:SMALL
、MEDIUM
、LARGE
和EXTRA_LARGE
。不同于之前的例子,这次我们为Size
类定义了一个构造函数Size(String abbreviation)
。构造函数接受一个参数abbreviation
,并将其赋值给私有变量abbreviation
。
除了构造函数,我们还为Size
类定义了一个公共方法getAbbreviation()
,用于获取每个实例的缩写。在构造函数中,我们将传入的abbreviation
参数赋值给实例的abbreviation
变量。然后,我们就可以通过调用实例的getAbbreviation()
方法来获取缩写了。
下面是一个使用枚举类的例子:
public class EnumConstructorExample {
public static void main(String[] args) {
Size size = Size.MEDIUM;
System.out.println("Size: " + size + ", Abbreviation: " + size.getAbbreviation());
}
}
在上面的例子中,我们定义了一个变量size
,它的类型是Size
,并将其赋值为Size.MEDIUM
。然后我们使用System.out.println
方法输出了size
的值以及它的缩写。输出结果为Size: MEDIUM, Abbreviation: M
。
总结
通过构造函数定义枚举类是一种扩展枚举类功能的强大方式。通过构造函数,我们