前言
Java是一门功能强大且广泛应用的编程语言,具有跨平台性和高效的执行速度,广受开发者喜爱。在接下来的学习过程中,我将记录学习过程中的基础语法、框架和实践技巧等,分享学习心得,对自己学习过程进行整理和总结,也希望能为其他学习Java的朋友提供一些帮助和参考。
枚举类
枚举类(Enum)是一种特殊的类,用于定义一组常量。它可以提高代码的可读性和可维护性,尤其是在处理固定集合的值时,比如星期几、季节、颜色等。在Java中,枚举类可以包含方法、构造函数和字段。
使用举例:
public enum Day {
SUNDAY,
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY
}
//使用枚举类时,可以像这样引用它的常量:
Day today = Day.MONDAY;
枚举类的优势
- 类型安全:只能使用定义的常量,避免了使用整型常量带来的错误。
- 可读性:常量名称更加描述性,易于理解。
- 内置方法:枚举类提供了内置的方法,如 values()(返回所有枚举值)和 valueOf(String name)(根据名称返回对应的枚举常量)。
使用
在JDK 5之前,Java没有内置的枚举类型,通常使用 static final 常量和类来模拟枚举。
可以创建一个包含常量的类,通常会将构造函数设为私有,防止外部实例化:
public class Day {
public static final Day SUNDAY = new Day("SUNDAY");
public static final Day MONDAY = new Day("MONDAY");
public static final Day TUESDAY = new Day("TUESDAY");
public static final Day WEDNESDAY = new Day("WEDNESDAY");
public static final Day THURSDAY = new Day("THURSDAY");
public static final Day FRIDAY = new Day("FRIDAY");
public static final Day SATURDAY = new Day("SATURDAY");
private String name;
private Day(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public String toString() {
return name;
}
}
上述使用 static final 常量来模拟枚举是一种常见做法,但在JDK 5及之后,Java引入了枚举类型(enum),使得定义和使用枚举更加简单和安全。以下是如何在现代Java中使用枚举类型的基本示例和特性:
public enum Day {
// 必须在枚举类的开头声明多个对象,并使用逗号隔开
SUNDAY("Sunday"),
MONDAY("Monday"),
TUESDAY("Tuesday"),
WEDNESDAY("Wednesday"),
THURSDAY("Thursday"),
FRIDAY("Friday"),
SATURDAY("Saturday");
//声明当前类的对象的实例变量,使用private final
private final String name;
Day(String name) {
this.name = name;
}
public final String getName() {
return name;
}
}
//使用
for (Day day : Day.values()) {
System.out.println(day);
}
//或者
Day day = Day.valueOf("FRIDAY");
System.out.println("The day is: " + day);
内置方法
枚举类型提供了一些内置方法:
- values():返回所有枚举值的数组。
- valueOf(String name):根据名称返回对应的枚举常量。
- name():返回枚举常量的名称。
System.out.println(Day.MONDAY.name()); // 输出 "MONDAY"
- ordinal():返回枚举常量的序数(位置),即它在枚举声明中的顺序,从0开始。
- toString():返回枚举常量的名称,通常与 name() 方法的返回值相同,可自己手动重写。