实验六 内部类和异常类
1. 实验目的
1、掌握内部类的常用方法 2、掌握匿名类的常用方法 3、掌握接异常类的常用方法
2. 实验内容
1、根据附录里的源代码,按照注释要求,完成代码填空,使程序能够运行得出结果。
1)实验1 红牛农场 2)实验2 检查危险品
3)实验3 内部类的使用方法 4)实验4 匿名类的使用方法 5)实验5 异常类使用方法 2、设计编写程序完成以下任务。 1)假如要从命令行获得两个整数,自定义两个异常类来描述可能发生的异常:ParameterNumberException(参数个数异常),ParameterFormateException(参数格式异常),设计一个类,在check(String args[])方法中通告这两个异常,在main方法中判断相应的情况下触发异常,然后捕获异常,对它们进行处理。(知识点:异常处理机制)
判断长度和类型不准,相应条件分支抛出对应的自定义异常即可
2)编写一个异常类MyException,在编写一个类Student,该类有一个产生异常的方法public void speak(int m)throws MyException,要求参数m的值大于1000时,方法抛出一个MyException对象。最后编写一个主类,在主类的main方法中用Student创建一个对象,让该对象调用speak方法。
3. 实验步骤
略
4. 评分标准
1. 2. 3. 4. 5.
A——内容功能完善,编程风格好,人机接口界面好; B——内容功能完善,编程风格良好,人机接口界面良好; C——完成必做内容; D——能完成必做内容;
E——未按时完成必做内容,或者抄袭(雷同者全部为E).
参照书上实验按模版要求,将【代码】替换为Java程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。(压缩包的文件名为:学号后三位和名字开头字母,如109zhh.RAR|ZIP)
附录: 实验1 红牛农场
模板代码
RedCowForm.java
public class RedCowForm { String formName;
//【代码1】//用内部类RedCow声明对象cow RedCowForm(){ }
RedCowForm(String s){ }
public void showCowMess(){ }
class RedCow{ } }
String cowName=\红牛\int height,weight,price; RedCow(int h,int w,int p){ }
void speak(){ }
System.out.println(cowName+\,身高:\,体重:\System.out.println(\生活在\height=h; weight=w; price=p; cow.speak();
//【代码2】//创建cow formName=s;
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() { }
public void setDanger(boolean boo) { }
public String getName() { }
public void setName(String s) { } }
name = s; return name; isDanger = boo; return isDanger;
DangerException.java
public class DangerException extends Exception{ String message;
public DangerException(){ }
public void toShow(){ } }
System.out.print(message+\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 for(int i=0;i try{ } catch(DangerException e){ } //【代码2】//e调用toShow()方法 System.out.println(goods[i].getName()+\被禁止!\machine.checkBag(goods[i]); System.out.println(goods[i].getName()+\检查通过\goods[i]=new Goods(); if(i%2==0){ } else{ } goods[i].setDanger(true); goods[i].setName(name[i]); goods[i].setDanger(false); goods[i].setName(name[i]); 实验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+\ }//内部类Inner结束 /** 类Outer中定义的实例方法testInner()方法 */ public void testInner() { } /** main()方法 */ public static void main(String args[]) { } }//类Outer结束 Outer o=new Outer(); 【代码5】//调用Outer类中的testInner方法 Inner i=new Inner(); 【代码4】//调用Inner类中的doStuff方法 实验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方法计算后的结果 } } 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验六 内部类与异常类在线全文阅读。
相关推荐: