Java程序设计-试验5(学生版)(共8页).doc
-
资源ID:14561662
资源大小:31KB
全文页数:8页
- 资源格式: DOC
下载积分:20金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
Java程序设计-试验5(学生版)(共8页).doc
精选优质文档-倾情为你奉上华北电力大学实 验 报 告| 实验名称 异常的抛出、捕获和处理 课程名称 Java程序设计 | 专业班级: 学生姓名: 学 号: 成 绩:指导教师:张学斌 实验日期: 专心-专注-专业一、实验目的和要求1了解程序运行过程中出现的各种错误,针对不同的错误,采取不同的手段排除错误2 理解异常处理机制的运行方式3 掌握Java异常处理的基本方法二、实验环境Windows2000/Windows XP,JDK 1.21.6 三、实验内容和步骤 实验1 内部购物券1.实验要求 手机专卖店为了促销自己的产品,决定发行内部购物券,但其他商场不能发行该购物券。编写一个MobileShop类(模拟手机专卖店),该类中有一个名字为InnerPurchaseMoney的内部类(模拟内部购物券)。2.程序模板 NewYear.javaclass MobileShop 【代码1】/用内部类InnerPurchaseMoney声明对象purchaseMoney1 【代码2】 /用内部类InnerPurchaseMoney声明对象purchaseMoney1 private int mobileAmount; /手机的数量 MobileShop() 【代码3】 /创建价值为20000的purchaseMoney1 【代码4】 /创建价值为10000的purchaseMoney2 void setMobileAmount(int m) mobileAmount = m; int getMobileAmount() return mobileAmount; class InnerPurchaseMoney int moneyValue; InnerPurchaseMoney(int m) moneyValue = m; void buyMobile() if(moneyValue>=20000) mobileAmount = mobileAmount-6; System.out.println("用价值"+moneyValue+"的内部购物卷买了6部手机"); else if(moneyValue<20000&&moneyValue>=10000) mobileAmount = mobileAmount-3; System.out.println("用价值"+moneyValue+"的内部购物卷买了3部手机"); public class NewYear public static void main(String args) MobileShop shop = new MobileShop(); shop.setMobileAmount(30); System.out.println("手机专卖店目前有"+shop.getMobileAmount()+"部手机"); shop.purchaseMoney1.buyMobile(); shop.purchaseMoney2.buyMobile(); System.out.println("手机专卖店目前有"+shop.getMobileAmount()+"部手机"); 实验2 检查危险品1.实验要求: 车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。 编写一个Exception的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出“属于危险品”。 编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。 程序在主类main()方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)方法,如果发现危险品就在try-catch语句的catch部分处理危险品。2.程序模板 Check.javapublic class Check public static void main(String args) Machine machine = new Machine(); String name ="苹果","炸药","西服","硫酸","手表","硫磺" Goods goods = new Goodsname.length; /检查6件货物 for(int i= 0;i<name.length;i+) goodsi = new Goods(); if(i%2=0) goodsi.setIsDanger(false); goodsi.setName(namei); else goodsi.setIsDanger(true); goodsi.setName(namei); for(int i= 0;i<goods.length;i+) try machine.checkBag(goodsi); System.out.println(goodsi.getName()+"检查通过"); catch(DangerException e) 【代码2】 /e调用toShow()方法 System.out.println(goodsi.getName()+"被禁止!"); DangerException.javapublic class DangerException extends Exception String message; public DangerException() message = "危险品!" public void toShow() System.out.print(message+" "); Goods.java public class Goods boolean isDanger; String name; public void setIsDanger(boolean boo) isDanger = boo; public boolean isDanger() return isDanger; public void setName(String s) name = s; public String getName() return name; Machine.javapublic class Machine public void checkBag(Goods goods) throws DangerException if(goods.isDanger() DangerException danger=new DangerException(); 【代码1】 /抛出danger else System.out.print(goods.getName()+"不是危险品! "); 实验3 自定义异常类1. 实验要求声明两个Exception的异常子类:NoLowerLetter类和NoDigit类。再声明一个people类,该类中的void printLetter(char c )方法抛出NoLowerLetter异常类对象,void printDigit(char c ) 方法抛出NoDigit异常类对象。2. 实验模板ExceptionExample.java【代码1】 / 类声明,声明一个Exception的子类NoLowerLetter public void print() System.out.printf("%c",'#'); 【代码2】 / 类声明,声明一个Exception的子类NoDigit public void print() System.out.printf("%c",'*'); class People void printLetter(char c) throws NoLowerLetter if(c<'a'|c>'z') NoLowerLetter noLowerLetter=【代码3】 / 创建NoLowerLetter类型对象 【代码4】 / 抛出noLowerLetter else System.out.print(c); void printDigit(char c) throws NoDigit if(c<'1'|c>'9') NoDigit noDigit=【代码5】 / 创建NoDigit()类型对象 【代码6】 / 抛出noDigit else System.out.print(c); public class ExceptionExample public static void main (String args ) People people=new People( ); for(int i=0;i<128;i+) try people.printLetter(char)i); catch(NoLowerLetter e) e.print(); for(int i=0;i<128;i+) try people.printDigit(char)i); catch(NoDigit e) e.print( );