Java Enum 怎么创建实例 在Java中,Enum是一种特殊的类,表示一组预定义的常量。通常,我们使用Enum来表示一组相关的常量,例如颜色、星期几等。在本文中,我们将探讨如何创建Enum实例
Java Enum 怎么创建实例
在Java中,Enum是一种特殊的类,表示一组预定义的常量。通常,我们使用Enum来表示一组相关的常量,例如颜色、星期几等。在本文中,我们将探讨如何创建Enum实例,并解决一个具体的问题:如何使用Enum来表示一周的工作日和休息日。
问题描述
我们的问题是,如何使用Java Enum来表示一周的工作日和休息日,并对其进行操作和比较。
解决方案
为了解决这个问题,我们可以创建一个名为WeekDay
的Enum,并在其中定义每个工作日和休息日。我们还可以添加一些方法来操作和比较这些Enum实例。
下面是一个示例代码:
public enum WeekDay {
MONDAY(true),
TUESDAY(true),
WEDNESDAY(true),
THURSDAY(true),
FRIDAY(true),
SATURDAY(false),
SUNDAY(false);
private boolean isWorkingDay;
private WeekDay(boolean isWorkingDay) {
this.isWorkingDay = isWorkingDay;
}
public boolean isWorkingDay() {
return isWorkingDay;
}
public boolean isWeekend() {
return !isWorkingDay;
}
}
在上述代码中,我们创建了一个名为WeekDay
的Enum,并定义了每个工作日和休息日的实例。每个实例都有一个isWorkingDay
属性,用于表示该日是否是工作日。我们还定义了两个方法isWorkingDay()
和isWeekend()
来判断一个实例是否是工作日或休息日。
现在,我们可以使用这些Enum实例来执行各种操作,例如检查一个日期是否是工作日,或者打印一周的工作日和休息日。
代码示例
下面是一些使用WeekDay
Enum的示例代码:
public class Main {
public static void main(String[] args) {
WeekDay monday = WeekDay.MONDAY;
WeekDay sunday = WeekDay.SUNDAY;
System.out.println(monday.isWorkingDay()); // 输出 true
System.out.println(sunday.isWorkingDay()); // 输出 false
if (monday.isWorkingDay()) {
System.out.println("今天是工作日");
} else {
System.out.println("今天是休息日");
}
if (sunday.isWeekend()) {
System.out.println("今天是休息日");
} else {
System.out.println("今天是工作日");
}
// 遍历一周的工作日和休息日
for (WeekDay day : WeekDay.values()) {
System.out.println(day.name() + ": " + (day.isWorkingDay() ? "工作日" : "休息日"));
}
}
}
上述代码中,我们创建了两个WeekDay
实例:monday
和sunday
。我们使用isWorkingDay()
方法检查这两个实例是否是工作日,并打印相应的结果。
我们还使用了if语句来根据实例的属性输出不同的信息。最后,我们使用values()
方法遍历了一周的工作日和休息日,并打印了相应的结果。
结果输出
true
false
今天是工作日
今天是休息日
MONDAY: 工作日
TUESDAY: 工作日
WEDNESDAY: 工作日
THURSDAY: 工作日
FRIDAY: 工作日
SATURDAY: 休息日
SUNDAY: 休息日
上述代码的输出结果符合我们的预期:monday
是工作日,sunday
是休息日,并且遍历的结果也正确。
甘特图
下面是使用Mermaid语法绘制的甘特图,展示了我们解决问题的过程:
gantt
dateFormat YYYY-MM-DD
title 解决问题的甘特图
section 创建Enum实例
创建Enum实例 : 2022-01-01, 1d
section 添加操作和比较方法
添加操作和比较方法 : 2022-01-02, 2d
section 测试代码
编写测试代码 : 2022-01-03, 2d
【本文转自:海外高防服务器 http://www.558idc.com/krgf.html 欢迎留下您的宝贵建议】