版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/suguoliang/article/details/79931168
危险品
题目描述
车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。a. 编写一个Exception的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出“属于危险品”。b. 编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。c. 程序在主类的main()方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)方法,如果发现危险品就在try-catch语句的catch部分处理危险品。d. 请按模板要求,将【代码】替换为java程序代码。class Goods {private boolean isDanger;private String name;public 【代码1】 isDanger() {return isDanger;}【代码2】 void setDanger(boolean isDanger) {this.isDanger = isDanger;}public String getName() {return name;}public 【代码3】 setName(String name) {this.name = name;}}class DangerException 【代码4】 {String message;public DangerException() {message = "危险品";}public void toShow() {System.out.println(message + " ");}}class Machine {public void checkBag(Goods goods) 【代码5】 DangerException {if (goods.isDanger()) {DangerException danger = new DangerException();【代码6】//抛出danger} else {System.out.println(goods.getName() + "不是危险品");}}}public class Main {public static void main(String[] args) {Machine machine = new Machine();String[] name = { "苹果", "炸药", "西服", "硫酸", "手表", "硫磺" };Goods[] goods = new Goods[name.length];for (int i = 0; i < goods.length; i++) {goods[i] = new Goods();if (i % 2 == 0) {goods[i].setDanger(false);goods[i].setName(name[i]);} else {goods[i].setDanger(true);goods[i].setName(name[i]);}}for (int i = 0; i < goods.length; i++) {try {machine.checkBag(goods[i]);System.out.println(goods[i].getName() + "检查通过");} catch (DangerException e) {【代码7】//e调用toshow()方法System.out.println(goods[i].getName() + "被禁止!");}}}}
输出样例
苹果不是危险品苹果检查通过危险品 炸药被禁止!西服不是危险品西服检查通过危险品 硫酸被禁止!手表不是危险品手表检查通过危险品
硫磺被禁止!
class Goods {
private boolean isDanger;
private String name;
public boolean isDanger() {
return isDanger;
}
public void setDanger(boolean isDanger) {
this.isDanger = isDanger;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class DangerException extends Exception {
String message;
public DangerException() {
message = "危险品";
}
public void toShow() {
System.out.println(message + " ");
}
}
class Machine {
public void checkBag(Goods goods) throws DangerException {
if (goods.isDanger()==true) {
DangerException danger = new DangerException();
// System.out.println(danger.message);
throw new DangerException();
////throw new Exception(danger);//抛出danger
} else {
System.out.println(goods.getName() + "不是危险品");
}
}
}
public class Main {
public static void main(String[] args){
Machine machine = new Machine();
String[] name = { "苹果", "炸药", "西服", "硫酸", "手表", "硫磺" };
Goods[] goods = new Goods[name.length];
for (int i = 0; i < goods.length; i++) {
goods[i] = new Goods();
if (i % 2 == 0) {
goods[i].setDanger(false);
goods[i].setName(name[i]);
} else {
goods[i].setDanger(true);
goods[i].setName(name[i]);
}
}
for (int i = 0; i < goods.length; i++) {
try {
machine.checkBag(goods[i]);
System.out.println(goods[i].getName() + "检查通过");
} catch (DangerException e) {
e.toShow();//((Exception) e).toShow();//【代码7】//e调用toshow()方法
System.out.println(goods[i].getName() + "被禁止!");
}
}
}
}