包接口抽象类异常处理.docx

上传人:b****7 文档编号:25499744 上传时间:2023-06-09 格式:DOCX 页数:9 大小:17.43KB
下载 相关 举报
包接口抽象类异常处理.docx_第1页
第1页 / 共9页
包接口抽象类异常处理.docx_第2页
第2页 / 共9页
包接口抽象类异常处理.docx_第3页
第3页 / 共9页
包接口抽象类异常处理.docx_第4页
第4页 / 共9页
包接口抽象类异常处理.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

包接口抽象类异常处理.docx

《包接口抽象类异常处理.docx》由会员分享,可在线阅读,更多相关《包接口抽象类异常处理.docx(9页珍藏版)》请在冰豆网上搜索。

包接口抽象类异常处理.docx

包接口抽象类异常处理

淮阴工学院

课程实验报告

课程名称

JAVA程序设计教程

班级

实验日期

姓名

学号

实验成绩

实验名称

包、接口抽象类&&异常处理

实验目的:

1.了解Java中包(package)、接口(interface)和抽象类的作用。

2.掌握包、接口、抽象类的设计方法。

3.了解Java异常处理(exception)的作用。

4.掌握异常处理的设计方法。

实验要求:

1.了解Java系统包的结构。

2.掌握创建自定义包的方法。

3.掌握使用系统接口的技术和创建自定义接口的方法。

4.理解系统异常处理的机制和创建自定义异常的方法。

Windows2000或XP,与

1.定义一个抽象基类Shape,它包含三个抽象方法center()、diameter()、getArea(),从Shape类派生出Square和Circle类,这两个类都用center()计算对象的中心坐标,diameter()计算对象的外界圆直径,getArea()方法计算对象的面积。

编写编写应用程序使用Square类和Circle类。

2.定义一个接口Insurance,接口中有四个抽象方法:

publicintgetPolicyNumber();publicintgetCoverageAmount();publicdoublecalculatePremium();publicDategetExpiryDate()。

设计一个类Car,该类实现接口的方法,编写应用程序。

3.定义泛型接口Function,其中包含方法TResultfun(Telement),该方法语义上根据一个T类型的参数得到一个TResul的结果。

请定义一个CollectionUtil类,该类主要对集合进行操作,所有的方法都是静态方法。

请思考并以下问题:

1)我们需要一个CollectionUtil对象吗该类是否应该是抽象类

2)定义方法

PublicstaticCollectionconvert(

Collectiondata,

Functionconverter)

注意:

Collection是java集合的父接口对象,该方法的作用是针对

集合data中的每一个元素,我们运用一个转换规则对象converter得到另外一个对象。

例如:

对于一个浮点数集合source为{,,,},对该集合中的每一个元素进行四舍五入操作,可以得到一个整数的集合{2,4,6,-2},为了完成上述转换,我们可以定义转换类

publicclassToIntFunimplementsFunction{

publicIntegerfun(Doublex){

returnx四舍五入的结果;

}

}

然后我们调用CollectionUtil.Convert(source,newToIntFun()),该方法的调用结果就是我们想要的四舍五入的结果集合。

请你完成方法convert和ToIntFun.Fun,并且编写一个主程序来测试。

测试分为两个层次:

a.测试单个元素的转换是否正确b.测试集合的转换是否正确

3)定义接口Command,该接口包含方法voidexecute(Telement),上述方法的作用是对一个T类型的参数element,做某个事情,最简单的是输出该元素的值。

然后为CollectionUtil类定义静态方法voidforeach(Collectiondata,Commandcmd)。

该方法的作用是针对集合data中的每个元素,执行某个操作。

请你定义一个类

ClassPositionSum实现接口Command,并且在execute方法中完成将一个整数的所有位数和输出的功能。

然后完成方法并且在主程序中测试PositionSum和。

4.自定义异常类MyException,该类继承自Exception类,类中只有含一个字符串参数msg的构造方法,构造方法中只有一条语句super(msg)——调用父类的构造方法。

另外,编写自定义类person,类中只有两个私有的变量,一个是字符串类型的姓名,另一个是整型变量age;有两个公有方法voidgetAge()和setAge(intage),其中setAge(intage)的功能是把参数age的值加到类中的变量age中(但要求age>0,否则抛出自定义异常MyException类的对象),getAge()方法返回age的值。

编写应用程序。

 

 

 

实验1

测试结果:

中心坐标为:

外界圆直径为2.

面积为:

中心坐标为:

外界圆直径为2.

面积为:

实验2

测试结果:

保单号:

11100

保险金额:

12200

保险总计:

终止日期:

null

实验3

测试结果:

实验4

测试结果:

请输入年龄:

22

张三的年龄为:

22

请输入年龄:

-3

Exceptioninthread"main"MyException:

年龄必须大于0

at:

24)

at:

36)

 

实验1

代码如下:

publicabstractclassShape{

protecteddoublex1;

protecteddoubley1;

protecteddoublex2;

protecteddoubley2;

Shape(doublex1,doubley1,doublex2,doubley2){

=x1;

=y1;

=x2;

=y2;

}

publicabstractStringcenter();

publicabstractdoublediameter();

publicabstractdoublegetArea();

}

publicclassSquareextendsShape{

Square(doublex1,doubley1,doublex2,doubley2){

super(x1,y1,x2,y2);

}

publicStringcenter(){

return"("+(x2-x1)/2+","+(y2-y1)/2+")";

}

publicdoublediameter(){

return((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));

}

publicdoublegetArea(){

return(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);

}

}

publicclassCircleextendsShape{

Circle(doublex1,doubley1,doublex2,doubley2){

super(x1,y1,x2,y2);

}

publicStringcenter(){

return"("+(x2-x1)/2+","+(y2-y1)/2+")";

}

publicdoublediameter(){

return((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));

}

publicdoublegetArea(){

return*(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)/4;

}

publicstaticvoidmain(String[]args){

Squarea=newSquare,,,;

Circleb=newCircle,,,;

"中心坐标为:

");

"外界圆直径为");

"面积为:

");

"中心坐标为:

");

"外界圆直径为");

"面积为:

");

}

}

实验2

代码如下:

import定义接口

publicinterfaceInsurance{

publicabstractintgetPolicyNumber();

publicabstractintgetCoverageAmount();

publicabstractdoublecalculatePremium();

publicabstractDategetExpiryDate();

}

importclassCarimplementsInsurance{

publicintgetPolicyNumber(){

return11100;//直接返回保单号

}

publicintgetCoverageAmount(){

return12200;//返回保险金额

}

publicdoublecalculatePremium(){

return;//返回保险的总金额

}

publicDategetExpiryDate(){

returnnull;//没有终止日期

}

publicstaticvoidmain(String[]args){

Cara=newCar();

"保单号:

"+());

"保险金额:

"+());

"保险总计:

"+());

"终止日期:

"+());

}

}

实验3

代码如下:

 

实验4

代码如下:

publicclassMyExceptionextendsException{

publicMyException(Stringmsg){

super(msg);

}

}

importclassPerson

{

privateStringname;

privateintage;

publicPerson(Stringa)

{

name=a;

}

publicintgetAge()

{

returnage;

}

publicStringgetname()

{

returnname;

}

publicvoidsetAge(intage)throwsMyException

{

if(age<0)

{

thrownewMyException("年龄必须大于0");

}

else=age;

}

publicstaticvoidmain(String[]args)throwsMyException

{

Persona=newPerson("张三");

"请输入年龄:

");

Scannerinput=newScanner;

intage=();

(age);

"的年龄为:

"+());

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1