车站里存放了很多的货物,这些货物将会通过一个设备进行检测,如果是非危险品, 则通过检查,而如果是危险品,则会报出警告并且禁止货物通行。请编写程序模拟该场 景。 该场景中包含如下类: 1) Goods:货物类,包含有货物的名称和是否是危险品两个属性; 2) DangerException:危险品异常类,当检测到危险品时需要抛出该异常类对象, 该类继承 Exception 类,包含一个 message 成员,构造该异常对象时,message 默认赋 值为“危险品警告”,另外该类包含一个 show 方法,当捕获到该类异常对象时被调用输 出 message; 3) Machine:机器设备类,该类负责对某一个产品进行检测,如果是危险品,则输 出异常信息,并输出“商品名称禁止通行”;如果不是危险品,即未产生异常,则直接 输出“商品名称检测通过”。 4) 测试类。
时间: 2023-06-19 17:09:56 浏览: 58
下面是该场景的代码实现:
```java
// Goods类
public class Goods {
private String name; // 货物名称
private boolean isDangerous; // 是否是危险品
public Goods(String name, boolean isDangerous) {
this.name = name;
this.isDangerous = isDangerous;
}
public String getName() {
return name;
}
public boolean isDangerous() {
return isDangerous;
}
}
// DangerException类
public class DangerException extends Exception {
private String message;
public DangerException() {
this.message = "危险品警告";
}
public void show() {
System.out.println(message);
}
}
// Machine类
public class Machine {
public static void checkGoods(Goods goods) throws DangerException {
if (goods.isDangerous()) {
throw new DangerException();
}
else {
System.out.println(goods.getName() + "检测通过");
}
}
}
// 测试类
public class Test {
public static void main(String[] args) {
Goods goods1 = new Goods("可乐", false);
Goods goods2 = new Goods("氢气球", true);
try {
Machine.checkGoods(goods1);
Machine.checkGoods(goods2);
}
catch (DangerException e) {
e.show();
System.out.println(goods2.getName() + "禁止通行");
}
}
}
```
输出结果:
```
可乐检测通过
危险品警告
氢气球禁止通行
```
在测试类中,我们创建了两个货物对象,分别是可乐和氢气球。然后通过 Machine 类的 checkGoods 方法对这两个货物进行检测。如果货物是危险品,则会抛出 DangerException 异常。在测试类中,我们使用 try-catch 语句捕获了该异常,并打印出警告信息和货物名称禁止通行的提示。如果货物没有抛出异常,则说明货物检测通过。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)