实验六 内部类与异常类

更新时间:2023-11-04 06:08:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验六 内部类和异常类

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. 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].setIsDanger(true); goods[i].setName(name[i]); goods[i].setIsDanger(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方法计算后的结果 } }

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(\计算开平方:\ } }

实验5 异常类使用方法

模板代码 eClass.java

class MyException extends Exception { }

abstract class A { }

class B extends A { }

int f(int x,int y) throws MyException { }

if(【代码3】)//判断x、y都不大于100

【代码4】//抛出一个新建的MyException对象,MyException对象中构造方法传入的参数

abstract int f(int x,int y) throws MyException; String message; MyException(String str) { }

public String getMessage() { }

【代码2】//返回message成员变量

【代码1】//把参数的引用传给message成员变量

内容为:乘数超过100

return x*y;

public class eClass { }

public static void main (String args[]) { }

A a;

【代码5】//设计a对象的B类上转型对象 try { }

catch(MyException e) { }

【代码7】输出错误信息

System.out.println(a.f(12,10));

【代码6】//使用f()方法时传入一个大于100的乘数

本文来源:https://www.bwwdw.com/article/ixw2.html

Top