车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品:
编写能够满足如下条件的程序:
- 编写一个Exception的子类DangerException,该子类可以创建异常对象,该异常对象调用showMessage()方法输出“属于危险品”。
- 编写一个Goods类,其中包括行李名称和是否为危险品的属性及对应的设置和获取方法。
- 编写一个Machine类,其中的checkGoods方法当发现行李为危险品时将抛出DangerException异常。
- 在主类的main()方法中定义n件行李,随机产生其是否为危险品的属性,并使用try-catch语句让Machine类的实例调用checkGoods方法进行异常处理。
简述
总共有四个类,分别是
- 异常类DangerException extends Exception
- 设备Goods
- 机器Machine
- 主类Main
DangerException
//定义异常类DangerException
public class DangerException extends Exception{
String message;
DangerException(String n)
{
message=n+"属于危险品";
//在Machine类中进行检测时会传回被检测设备的good.name,和字符串"属于危险品"共同构成message
}
String showMessage()
{
return message;
//在main()中调用并输出showmessage(),最终输出的结果应该是“设备名称属于危险品”。
}
}
Goods
//定义设备类Goods
public class Goods {
String name;//设备名
boolean isDanger;//设备危险值,“true”代表设备是危险品
boolean IsDanger()
{
return isDanger;
}
void SetDanger(boolean TorF)
{
isDanger=TorF;//用传入的危险值来设置设备
}
String GetName()
{
return name;
}
void SetName(String s)
{
name=s;
}
}
Machine
//定义机器类Machine
public class Machine {
void check(Goods good) throws DangerException
{
if (good.isDanger==true)//进行判断,若设备名是约定的危险设备,则将危险值设为“true”
{
throw new DangerException(good.name);//抛出异常,在main()进行try-catch处理
}
}
}
Main
*事先约定进行检测的设备有哪些,并且约定哪种设备是危险品。本题中共有“手机”,“电脑”,“耳机”,“刀”,“炸药”五种设备,其中“刀”和“炸药”属于危险品。
//定义主类Main
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Machine machine=new Machine();
String [] str= {"手机","电脑","耳机","刀","炸药"};
Goods good=new Goods();
for(int i=0;i<str.length;i++)
{
good.SetName(str[i]);//设定设备名,用于进行判断以及输出结果
if (good.GetName()=="刀"||good.GetName()=="炸药")//判断设备是否是“刀”或者“炸药”,如果是,则属于危险品
good.SetDanger(true);
else good.SetDanger(false);
try
{
machine.check(good);
}
catch(DangerException e)
{
System.out.println(e.showMessage());
}
}
}
}