当前位置:
文档之家› JAVA实验报告 接口 泛型 枚举 内部类与异常
JAVA实验报告 接口 泛型 枚举 内部类与异常
} public T get(){ Object result=null; int idx=(headLoc+1)%objArray.length; if(objArray[idx]!=null){ result=objArray[idx]; objArray[idx]=null; headLoc++;
不能给我一个 null 的参数! P183 9-3 的运行结果为:
D:\Java>java Summer3
也不能给我一个不是数值型的参数!
sum=0 public class BuHuo{
public static int sum(String a,String b){ int sum=0,x=0,y=0; try{ a.trim(); b.trim(); x=Integer.parseInt(a); y=Integer.parseInt(b); sum=x+y;
} public static void main(String[] args){ int result=sum("ab",null); System.out.println("sum="+result);
}
}
四、实验体会(实验中碰到的问题及解决方法等) 1、知道了接口该如何定义和如何使用接口。 2、学会了枚举类的定义和使用,掌握了内部类的定义和使用方法。 3、能正确区分异常和错误,掌握了将可能发生异常的语句放在 try{}catch(){}代
} public static void main(String[] args){ GenericPool<String>pool=new GenericPool<String>(2); System.out.println(pool.add("1")); String x=pool.get(); System.out.println(x); System.out.println(pool.add("2"));
实验报告
课程名称: Java 程序设计
成绩评定:
实验项目名称:接口、泛型、枚举、内部类与异常 指导教师:
学生姓名: 学号: 专业班级:
实验项目类型: 基础 实验地点: 实验时间:
一、实验目的与要求:
1、理解接口的定义与实现; 2、知道泛型、枚举型与内部类的基本应用; 3、掌握常用异常的抛出与捕获及处理. 二、实验环境:(硬件环境、软件环境)
} }
2
2. public class GenericPool<T>{ private Object[] objArray; private int headLoc; private int tailLoc; public GenericPool(int length){ objArray=new Object[10]; headLoc=-1; tailLoc=-1;
4
}catch(NullPointerException e){ System.out.println("不能给我一个 null 的参数!");
}catch(NumberFormatException e){ System.out.println("不能给我一个不是数值型的字符串参数!");
} return sum;
பைடு நூலகம்} }
3. public class OutClass{ private String name; private String state; public OutClass(String name,String state){
3
super(); =name; this.state=state;
} } public class MainBoard{
public void usePCICard(PCI p){ p.start(); p.stop();
} public static void main(String[] args){ NetworkCard nc=new NetworkCard(); SoundCard sc=new SoundCard(); MainBoard mb=new MainBoard(); ePCICard(nc); ePCICard(sc);
码块中,来确保异常发生时能够得到捕获,并学会了自定义异常。 4、理解题目容易,自己写比较难,往往会遇到一些问题很难得到解决。如:找不
到符号是什么愿意导致,当定义一个方法为 public 时,有时程序会出错,而删除时程序 能正常运行的原因。
5、将可能发生异常的语句放在 try{}还不能很好的理解,如:对输入值的判断,不 知道该把那句放在 try 中。
5
} return (T)result;
} public int add(T o){ int ins=(tailLoc+1)%objArray.length; if(objArray[ins]!=null){ return -1;
} objArray[ins]=o; tailLoc=ins; return ins;
1.硬件环境:奔Ⅳ PC。 2.软件环境:Windows XP 操作系统,JDK6.0。 三、实验内容:(原理、操作步骤、程序代码等)
任务: 1、按照要求完成下述接口及实现类的程序 1) 定义名称为 PCI()的接口,包括启动的方法 start 和关闭的方法 stop; 2) 定义名称为 NetworkCard 的类表示网卡,实现 PCI 接口,并且其在实现 start 方法时输出“sending data……”,在实现 stop 方法时输出“network stop.” 3) 定义名称为 SoundCard 的类表示声卡,实现 PCI 接口;并且其在实现 start 方法时输出“dudu……”,在实现 stop 方法时输出“sound stop.” 4) 定义名称为 MainBoard 的类表示主板,包含方法 public void usePCICard(PCI p),在方法体内通过 p 来启动和关闭组件; 5) 定义一个包含 main 方法的 Test 类,在 main 方法内创建一个 MainBoard 对 象用 mb 来引用,创建一个 NetworkCard 对象用 nc 来引用,创建一个 SoundCard 对象用 sc 来引用,分别通过 mb 来使用 usePCICard(PCI p)启动声 卡和网卡。 2、 泛型类程序的调试 调试教材 P165 的程序 8-2,写出程序运行结果,理解泛型类的工作机理及应用。 3、 调试运行内部类程序: 在类内部再定义另外一个类,这个另外定义的类就叫内部类。调试教材 P171-172
并调试后写出运行结果。
1
具体操作步骤及程序代码为: 1. interface PCI{
public void start(); public void stop(); } class NetworkCard implements PCI{ public void start(){
System.out.println("sending data......"); }
} private void say(){ System.out.println("外部"+name+"的状态是"+state); }
public class InnerClass{ public void alarm(){ System.out.println("内部:"+name+"的状态是"+state); say(); } }
程序 8-3,写出程序运行结果,理解内部类的定义方法与应用。 4、异常抛出与捕获编程与调试 先调试教材 P182、183 中的程序 9-2 和 9-3,写出调试结果。然后,自己编写一
个能抛出并捕获、处理 NullPointerException、NumberFormanException 多异常的程序,
public void stop(){ System.out.println("network stop.");
} } class SoundCard implements PCI{
public void start(){ System.out.println("dudu......");
} public void stop(){ System.out.println("sound stop.");
public static void main(String[] args){ OutClass Outer=new OutClass("冰箱","完好"); OutClass.InnerClass inner=Outer.new InnerClass(); inner.alarm();
} }
4.p182 9-2 的运行结果为: D:\Java>java Summer2