使用java编写一个程序,定义一个点燃接口,在定义一个火柴类实现点燃接口,每根火柴对象只能调用一次点燃方法,要使用到内部类
时间: 2024-11-13 08:24:34 浏览: 4
移动一根火柴使等式成立js版本
在Java中,你可以创建一个名为`LightingInterface`的接口来定义"点燃"的行为,然后通过一个私有内部类`Matchstick`来限制每个火柴对象只能点燃一次。这是一个简单的示例:
```java
// 定义接口 LightingInterface
interface LightingInterface {
void light();
}
// 创建私有内部类 Matchstick 实现接口
class Matchstick implements LightingInterface {
private boolean isLit = false;
// 内部类的构造函数
public Matchstick() {
// 模拟火柴只能点燃一次
if (isLit) {
throw new IllegalStateException("Matchstick has already been lit.");
}
isLit = true;
}
// 点燃方法,只允许调用一次
@Override
public void light() {
if (!isLit) {
System.out.println("Matchstick is ignited.");
} else {
throw new IllegalStateException("Matchstick is already lit.");
}
}
}
public class Main {
public static void main(String[] args) {
// 创建火柴对象
LightingInterface matchstick = new Matchstick();
// 正常点燃
matchstick.light();
try {
// 尝试第二次点燃会抛出异常
matchstick.light();
} catch (IllegalStateException e) {
System.out.println(e.getMessage());
}
阅读全文