包接口 抽象类异常处理_第1页
包接口 抽象类异常处理_第2页
包接口 抽象类异常处理_第3页
包接口 抽象类异常处理_第4页
包接口 抽象类异常处理_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、淮阴工学院课程实验报告课程名称JAVA程序设计教程班级实验日期姓名学号实验成绩实验名称包、接口 抽象类&&异常处理实验目的及要求实验目的:1. 了解Java 中包(package)、接口(interface)和抽象类的作用。2. 掌握包、接口、抽象类的设计方法。3. 了解Java异常处理(exception)的作用。4. 掌握异常处理的设计方法。实验要求:1. 了解Java 系统包的结构。2. 掌握创建自定义包的方法。3. 掌握使用系统接口的技术和创建自定义接口的方法。4. 理解系统异常处理的机制和创建自定义异常的方法。实验环境Windows2000 或XP,JDK1.6与Jc

2、reator4.0实验内容1.定义一个抽象基类Shape,它包含三个抽象方法center()、diameter()、getArea(),从Shape类派生出Square和Circle类,这两个类都用center()计算对象的中心坐标,diameter()计算对象的外界圆直径,getArea()方法计算对象的面积。编写编写应用程序使用Square类和Circle类。2定义一个接口Insurance,接口中有四个抽象方法:public int getPolicyNumber();public int getCoverageAmount();public double calculatePremiu

3、m();public Date getExpiryDate()。设计一个类Car,该类实现接口的方法,编写应用程序。3.定义泛型接口Function<T,TResult> , 其中包含方法TResult fun(T element),该方法语义上根据一个T类型的参数得到一个TResul的结果。请定义一个CollectionUtil类,该类主要对集合进行操作,所有的方法都是静态方法。请思考并以下问题:1) 我们需要一个CollectionUtil对象吗?该类是否应该是抽象类?2) 定义方法Public static <T,TResult> Collection<TR

4、esult> convert(Collection<T> data,Function<T,TResult> converter) 注意: Collection是java集合的父接口对象,该方法的作用是针对集合data中的每一个元素,我们运用一个转换规则对象converter得到另外一个对象。例如:对于一个浮点数集合source为2.3,4.2,5.6,-2.4,对该集合中的每一个元素进行四舍五入操作,可以得到一个整数的集合2,4,6,-2,为了完成上述转换,我们可以定义转换类public class ToIntFun implements Function<

5、Double,Integer> public Integer fun(Double x) return x四舍五入的结果;然后我们调用CollectionUtil. Convert<Double,Integer>(source,new ToIntFun(),该方法的调用结果就是我们想要的四舍五入的结果集合。请你完成方法convert和ToIntFun. Fun,并且编写一个主程序来测试。测试分为两个层次:a.测试单个元素的转换是否正确 b.测试集合的转换是否正确3) 定义接口Command<T>,该接口包含方法void execute(T element),上述方

6、法的作用是对一个T类型的参数element,做某个事情,最简单的是输出该元素的值。然后为CollectionUtil类定义静态方法 <T> void foreach(Collection<T> data, Command<T> cmd)。该方法的作用是针对集合data中的每个元素,执行某个操作。请你定义一个类Class PositionSum实现接口Command<Integer>,并且在execute方法中完成将一个整数的所有位数和输出的功能。然后完成方法CollectionUtil.foreach并且在主程序中测试PositionSum和Co

7、llectionUtil.foreach。4. 自定义异常类MyException,该类继承自Exception类,类中只有含一个字符串参数msg的构造方法,构造方法中只有一条语句super(msg)调用父类的构造方法。另外,编写自定义类person,类中只有两个私有的变量,一个是字符串类型的姓名,另一个是整型变量age;有两个公有方法void getAge()和setAge(int age),其中setAge(int age)的功能是把参数age的值加到类中的变量age中(但要求age>0,否则抛出自定义异常MyException类的对象),getAge()方法返回age的值。编写应用

8、程序。算法描述及实验步骤调试过程及实验结果实验1测试结果:中心坐标为:(1.0,1.0)外界圆直径为2.8284271247461903面积为:8.0中心坐标为:(1.0,1.0)外界圆直径为2.8284271247461903面积为:13.56实验2测试结果:保单号:11100保险金额:12200保险总计:12345.6终止日期:null实验3测试结果:实验4测试结果:请输入年龄:22张三的年龄为:22请输入年龄:-3Exception in thread "main" MyException: 年龄必须大于0at Person.setAge(Person.java:24

9、)at Person.main(Person.java:36)总结附录实验1代码如下:public abstract class Shape protected double x1;protected double y1;protected double x2;protected double y2;Shape(double x1, double y1, double x2,double y2)this.x1 = x1;this.y1 = y1;this.x2 = x2;this.y2 = y2;public abstract String center();public abstract d

10、ouble diameter();public abstract double getArea();public class Square extends ShapeSquare(double x1, double y1, double x2,double y2)super(x1,y1,x2,y2);public String center()return "(" + (x2-x1)/2 + "," + (y2-y1)/2 + ")"public double diameter()return Math.sqrt(x2-x1)*(x2

11、-x1)+(y2-y1)*(y2-y1);public double getArea()return (x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);public class Circle extends ShapeCircle(double x1, double y1, double x2,double y2)super(x1,y1,x2,y2);public String center()return "(" + (x2-x1)/2 + "," + (y2-y1)/2 + ")"public double diam

12、eter()return Math.sqrt(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);public double getArea()return 3.14*(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)/4;public static void main(String args)Square a = new Square(1.0,2.0,3.0,4.0);Circle b = new Circle(2.0,3.0,4.0,5.0);System.out.print("中心坐标为:");System.out.println(a.cente

13、r();System.out.print("外界圆直径为");System.out.println(a.diameter();System.out.print("面积为:");System.out.println(a.getArea();System.out.print("中心坐标为:");System.out.println(b.center();System.out.print("外界圆直径为");System.out.println(b.diameter();System.out.print("面积

14、为:");System.out.println(b.getArea();实验2代码如下:import java.util.Date;/定义接口public interface Insurance public abstract int getPolicyNumber(); public abstract int getCoverageAmount(); public abstract double calculatePremium(); public abstract Date getExpiryDate();import java.util.Date;public class Ca

15、r implements Insurance public int getPolicyNumber() return 11100; /直接返回保单号 public int getCoverageAmount() return 12200; /返回保险金额 public double calculatePremium() return 12345.6; /返回保险的总金额 public Date getExpiryDate() return null ; /没有终止日期 public static void main(String args) Car a = new Car(); System.

16、out.println("保单号:"+a.getPolicyNumber(); System.out.println("保险金额:"+a.getCoverageAmount(); System.out.println("保险总计:"+a.calculatePremium(); System.out.println("终止日期:"+a.getExpiryDate(); 实验3代码如下:实验4代码如下:public class MyException extends Exception public MyExcepti

17、on(String msg)super(msg);import java.util.Scanner;public class Person private String name;private int age;public Person(String a)name=a;public int getAge()return age;public String getname()return name; public void setAge(int age)throws MyException if(age<0) throw new MyException("年龄必须大于0"); else this.age=ag

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论