收藏 分销(赏)

实验六-内部类与异常类.doc

上传人:仙人****88 文档编号:8873077 上传时间:2025-03-06 格式:DOC 页数:7 大小:42.44KB 下载积分:10 金币
下载 相关 举报
实验六-内部类与异常类.doc_第1页
第1页 / 共7页
实验六-内部类与异常类.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
实验六 内部类和异常类 1. 实验目的 1、掌握内部类的常用方法 2、掌握匿名类的常用方法 3、掌握接异常类的常用方法 2. 实验内容 1、根据附录里的源代码,按照注释要求,完成代码填空,使程序能够运行得出结果。 1)实验1 红牛农场 2)实验2 检查危险品 3)实验3 内部类的使用方法 4)实验4 匿名类的使用方法 5)实验5 异常类使用方法 2、完成习题: 1)编写一个异常类MyException,在编写一个类Student,该类有一个产生异常的方法public void speak(int m)throws MyException,要求参数m的值大于1000时,方法抛出一个MyException对象。最后编写一个主类,在主类的main方法中用Student创建一个对象,让该对象调用speak方法。 3. 实验步骤 1、完成实验内容1中的程序填空、编译通过,并运行得到正确结果。 2、设计完成实验内容2中要求的程序,并通过编译、运行,最后得到正确结果。 4. 评分标准 1. A——内容功能完善,编程风格好,人机接口界面好; 2. B——内容功能完善,编程风格良好,人机接口界面良好; 3. C——完成必做内容; 4. D——能完成必做内容; 5. E——未按时完成必做内容,或者抄袭(雷同者全部为E). 参照书上实验按模版要求,将【代码】替换为Java程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。(压缩包的文件名为:学号后三位和名字开头字母,如109zhh.RAR|ZIP) 实验1 红牛农场 模板代码 RedCowForm.java public class RedCowForm { String formName; //【代码1】//用内部类RedCow声明对象cow RedCowForm(){ } RedCowForm(String s){ //【代码2】//创建cow formName=s; } public void showCowMess(){ cow.speak(); } class RedCow{ String cowName="红牛"; int height,weight,price; RedCow(int h,int w,int p){ height=h; weight=w; price=p; } void speak(){ System.out.println(cowName+",身高:"+height+"cm,体重:"+weight+"kg"); System.out.println("生活在"+formName); } } } MainClass.java public class MainClass { public static void main(String[] args) { RedCowForm form=new RedCowForm("红牛农场"); form.showCowMess(); } } 实验2 检查危险品 模板代码 Goods.java public class Goods { boolean isDanger; String name; public boolean isDanger() { return isDanger; } public void setDanger(boolean boo) { isDanger = boo; } public String getName() { return name; } public void setName(String s) { name = s; } } DangerException.java public class DangerException extends Exception{ String message; public DangerException(){ message="危险品!"; } public void toShow(){ System.out.print(message+""); } } Machine.java public class Machine { Goods[] goods; public void checkBag(Goods goods) throws DangerException{ if(goods.isDanger){ //【代码1】//用throw抛出一个DangerException的匿名类 } } } Check.java public class Check { public static void main(String[] args) { Machine machine=new Machine(); String name[]={"苹果","炸药","西服","硫酸","手表","硫磺"}; Goods [] goods= new Goods[name.length];//检查6件物品 for(int i=0;i<name.length;i++){ goods[i]=new Goods(); if(i%2==0){ goods[i].setIsDanger(false); goods[i].setName(name[i]); } else{ goods[i].setIsDanger(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){ //【代码2】//e调用toShow()方法 System.out.println(goods[i].getName()+"被禁止!"); } } } } 实验3 内部类的使用 模板代码 Outer.java public class Outer { private static int size; /** 内部类Inner的声明 */ public class Inner { private int size; /** 方法doStuff() */ public void doStuff(int size) { 【代码1】 //存取局部变量size加3 【代码2】 //存取其内部类的成员变量size加2 【代码3】 //存取其外部类的成员变量size加1 System.out.println(size+" "+this.size+" "+Outer.this.size); } }//内部类Inner结束 /** 类Outer中定义的实例方法testInner()方法 */ public void testInner() { Inner i=new Inner(); 【代码4】//调用Inner类中的doStuff方法 } /** main()方法 */ public static void main(String args[]) { Outer o=new Outer(); 【代码5】//调用Outer类中的testInner方法 } }//类Outer结束 实验4 匿名类的使用方法 模板代码 Anonymity.java interface Square { double getSquare(int n); } interface Sqrt { public double getSqrt(int x); } class A { void p(Square square) { System.out.println(【代码1】);//输出getSquare方法计算后的结果 } void k(Sqrt sqrt) { System.out.println(【代码2】);//输出getSqrt方法计算后的结果 } } public class Anonymity { public static void main(String args[]) { A a=new A(); a.p(【代码3】);//实现Square接口,重写getSquare方法,返回n的平方 Sqrt sqrt=new Sqrt() {【代码4】};//重写getSqrt方法,返回x的开平方根,用静态Math.sqrt方法来运算 System.out.println("计算开平方:"+sqrt.getSqrt(5)); } } 实验5 异常类使用方法 模板代码 eClass.java class MyException extends Exception { String message; MyException(String str) { 【代码1】//把参数的引用传给message成员变量 } public String getMessage() { 【代码2】//返回message成员变量 } } abstract class A { abstract int f(int x,int y) throws MyException; } class B extends A { int f(int x,int y) throws MyException { if(【代码3】)//判断x、y都不大于100 【代码4】//抛出一个新建的MyException对象,MyException对象中构造方法传入的参数内容为:乘数超过100 return x*y; } } public class eClass { public static void main (String args[]) { A a; 【代码5】//设计a对象的B类上转型对象 try { System.out.println(a.f(12,10)); 【代码6】//使用f()方法时传入一个大于100的乘数 } catch(MyException e) { 【代码7】输出错误信息 } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服