题目要求:模拟火车站安检,编写java程序,要求如下:
(1)编写一个异常类goodsException,该类包括toPrint()方法,输出“该物品是违禁品”;
(2)编写一个检测工具类Tool,该类中有checkGoods(Goods g)方法,当参数g是违禁品时,将抛出goodsException对象;
(3)编写一个Goods类,该类中包含如下方法:设置物品是否是违禁品的方法setIsDanger(boolean b)(默认否),判定物品是否是违禁品的方法isDanger(),如果是违禁品,返回ture,否则false;设置物品的名字的方法setName(String n);返回物品名字的方法getName();
(4)编写测试类,创建一个Goods类对象“explosive”,并设置该物品是违禁品,然后模拟检测到该物品是违禁品。
实现效果视频:【Java】接口、内部类、匿名类、异常类(实验)_哔哩哔哩_bilibili
思路构建:
1.编写一个异常类goodsException,该类包括toPrint()方法,输出“该物品是违禁品”;
2.编写一个检测工具类Tool,该类中有checkGoods(Goods g)方法,当参数g是违禁品时,将抛出goodsException对象;
3.编写一个Goods类,该类中包含如下方法:设置物品是否是违禁品的方法setIsDanger(boolean b)(默认否),判定物品是否是违禁品的方法isDanger(),如果是违禁品,返回ture,否则false;设置物品的名字的方法setName(String n);返回物品名字的方法getName();
4.编写测试类,创建一个Goods类对象“explosive”,并设置该物品是违禁品,然后模拟检测到该物品是违禁品。
异常类goodsException代码如下:
package test5;
public class goodsException extends Exception{
public void toPrint(){
System.out.println("该物品是违禁品");
}
}
异常类goodsException继承Java自带的异常类Exception,里面定义toPrint()方法,输出“该物品是违禁品”。
检测工具类Tool代码如下:
package test5;
public class Tool {
public void checkGoods(Goods g) throws goodsException{
if(g.boo){
throw new goodsException();
}
}
}
检测工具类Tool内如果checkGoods()方法扔出goodsException异常,方法内检测Goods的boo值,如果为true则说明该物品是违禁品,扔出goodsException异常。
Goods类代码如下:
package test5;
public class Goods {
boolean boo = false;
String s;
void getIsDanger(boolean b){
boo = b;
}
boolean isDanger(){
return boo;
}
void setName(String n){
s = n;
}
String getName(){
return s;
}
}
Goods类中boo值默认为false,表示该物品默认不是违禁品,然后定义了getIsDanger()方法通过形参传递确定该物品是否为违禁品。isDanger()方法返回物品是否为违禁品,setName()为设定该物品名称,getName则是返回该物品的名称。
test测试类代码如下:
package test5;
public class test {
public static void main(String[] args) {
Goods explosive = new Goods();
explosive.setName("蝴蝶刀");
explosive.getIsDanger(true);
Tool tool = new Tool();
try {
tool.checkGoods((explosive));
}
catch (goodsException e){
System.out.println("物品:"+ explosive.getName());
e.toPrint();
}
}
}
新建了Goods对象后,用getIsDanger()方法将该物品设定为违禁品,再用try-catch按程序检查该物品是否为违禁品。
运行结果: