1、在包Lab7中创建一个名为Lab7_1的类,实现以下要求: a、建立星期接口WeekInterface,具有周一到周日的7个常量。 b、建立星期枚举weekEnum,具有周一到周日的7个枚举值。 c、测试使用接口常量和枚举,比较两者的使用场景。
时间: 2024-11-06 17:14:53 浏览: 23
在Java中,为了满足您的需求,首先我们需要创建`WeekInterface`接口和`WeekEnum`枚举类。以下是详细的步骤:
**步骤1:创建WeekInterface接口**
```java
// 包名:com.example.Lab7
package com.example.Lab7;
// 创建接口
public interface WeekInterface {
// 周一到周日的常量,注意大写字母表示星期
int MONDAY = 1;
int TUESDAY = 2;
int WEDNESDAY = 3;
int THURSDAY = 4;
int FRIDAY = 5;
int SATURDAY = 6;
int SUNDAY = 7;
}
```
**步骤2:创建WeekEnum枚举类**
```java
// 包名:com.example.Lab7_1
package com.example.Lab7_1;
import java.util.Arrays;
// 创建枚举类
public enum weekEnum implements WeekInterface {
// 枚举值对应接口中的常量
INSTANCE(MONDAY),
TUESDAY(2),
WEDNESDAY(3),
THURSDAY(4),
FRIDAY(5),
SATURDAY(6),
SUNDAY(7);
private final int day;
weekEnum(int day) {
this.day = day;
}
@Override
public int getDay() {
return day;
}
// 测试方法,用于演示使用场景
public static void testUsage() {
WeekInterface[] interfaces = values();
weekEnum[] enums = Arrays.stream(weekEnum.values()).toArray(weekEnum[]::new);
System.out.println("Using Interface: " + Arrays.toString(interfaces));
System.out.println("Using Enum: " + Arrays.toString(enums));
}
}
// 在此测试方法
public class Lab7_1Main {
public static void main(String[] args) {
weekEnum.testUsage();
}
}
```
**使用场景对比:**
- **接口常量**:适用于需要定义一组固定的行为规范,并期望多个类共享这一规范的场景。接口常量更适合于那些不需要实例化,仅作为标识符使用的场景。
- **枚举**:更便于直接提供具体的实例及其相关的额外信息,如getDay()方法。当需要关联特定业务逻辑或具有一些预定义行为时,枚举是一个更好的选择。
阅读全文