JAVA异常实验:车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品

车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品:
编写能够满足如下条件的程序:

  1. 编写一个Exception的子类DangerException,该子类可以创建异常对象,该异常对象调用showMessage()方法输出“属于危险品”。
  2. 编写一个Goods类,其中包括行李名称和是否为危险品的属性及对应的设置和获取方法。
  3. 编写一个Machine类,其中的checkGoods方法当发现行李为危险品时将抛出DangerException异常。
  4. 在主类的main()方法中定义n件行李,随机产生其是否为危险品的属性,并使用try-catch语句让Machine类的实例调用checkGoods方法进行异常处理。

简述

总共有四个类,分别是

  1. 异常类DangerException extends Exception
  2. 设备Goods
  3. 机器Machine
  4. 主类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());
	}
}
}
}

输出结果输出结果

  • 23
    点赞
  • 189
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值