JAVA实验7-9+答案(15页).doc
《JAVA实验7-9+答案(15页).doc》由会员分享,可在线阅读,更多相关《JAVA实验7-9+答案(15页).doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-JAVA实验7-9+答案-第 15 页实验71. 编一个程序,包含以下文件。(1)Shape.java文件,在该文件中定义接口Shape,该接口在shape包中。属性:PI。方法:求面积的方法area()。(2)Circle.java文件,在该文件中定义圆类Circle,该类在circle包中,实现Shape接口。属性:圆半径radius。方法:构造方法;实现接口中求面积方法area();求周长方法perimeter()。(3)“Cylinder.java”文件,在该文件中定义圆柱体类Cylinder,该类口在cylinder包中,继承圆类。属性:圆柱体高度height。方法:构造方法;求表
2、面积方法area();求体积方法volume()。(4)X5_3_6.java文件,在该文件中定义主类X5_3_6,该类在默认包中,其中包含主方法main(),在主方法中创建两个圆类对象cir1和cir2,具体尺寸自己确定,并显示圆的面积和周长;再创建两个圆柱体类的对象cy1和cy2,具体尺寸自己确定,然后分别显示圆柱体cy1和cy2的底圆的面积和周长以及它们各自的体积和表面积。【编程分析】本题主要考察接口、包、继承、封装等问题。编程步骤如下:第一步:首先创建p1包,在其中创建Shape接口/ Shape.java文件package p1;/ 创建p1包public interface Sha
3、pe/ 定义Shape接口第二步:创建Circle类和Cylinder类,它们都定义在p2包中。/ Circle.java文件package p2;/ 创建p2包import p1.*;public class Circle implements Shape/ 定义实现Shape接口的Circle类/ Cylinder.java文件package p2;public class Cylinder extends Circle/ 创建继承Circle类的Cylinder类第三步:创建主类,在其中的main()方法中创建对象,实现相应的功能。/ X5_3_6.java文件package p3;im
4、port p2.*;public class X5_3_6 / 定义主类 public static void main(String args) 【参考程序】/ X5_3_6.java文件package p3;import p2.*;public class X5_3_6 / 定义主类 public static void main(String args) Circle cir1 = new Circle(120.5); Circle cir2 = new Circle(183.8); System.out.println(cir1.area: +cir1.area(); System.o
5、ut.println(cir1.perimeter: +cir1.perimeter(); System.out.println(cir2.area: +cir2.area(); System.out.println(cir2.perimeter: +cir2.perimeter(); Cylinder cy1 = new Cylinder(27.3,32.7); Cylinder cy2 = new Cylinder(133.5,155.8); System.out.println(cy1.area: +cy1.area(); System.out.println(cy1.volume: +
6、cy1.volume(); System.out.println(cy2.area: +cy2.area(); System.out.println(cy2.volume: +cy2.volume();/ Shape.java文件package p1;/ 创建p1包public interface Shape/ 定义Shape接口double PI=Math.PI;double area();/ 求面积方法/ Circle.java文件package p2;/ 创建p2包import p1.*;public class Circle implements Shape/ 定义实现Shape接口的
7、Circle类double radius;/ 半径public Circle(double r)radius = r;public double area()/ 实现Shape接口中的方法(这是必须的)return PI*radius*radius;public double perimeter()/ 定义求圆周长的方法return 2*PI*radius;/ Cylinder.java文件package p2;public class Cylinder extends Circle/ 创建继承Circle类的Cylinder类double height;public Cylinder(dou
8、ble r,double h)super(r);height = h;public double area()return 2*PI*radius*radius+2*PI*radius*height;public double volume()return PI*radius*radius*height;2)定义一个接口OneToN,在接口中包含一个抽象方法disp()。定义Sum和Pro类,并分别用不同代码实现ONeToN的disp()方法,在Sum的方法中计算1n的和,在Pro的方法中计算1n的乘积interface OneToNpublic void disp(int n);class
9、Sum implements OneToNpublic void disp(int n)int sum=0;for(int i=1;i=n;i+)sum=sum+i;System.out.println(sum);class Pro implements OneToNpublic void disp(int n)long pro=1;for(int i=1;i=n;i+)pro=pro*i;System.out.println(pro);public class interfaceTest public static void main(String args) / TODO code app
10、lication logic here Sum x=new Sum(); x.disp(100);3)改错,上传正确答案,并以注释形式给出错误原因class SuperClasspublic SuperClass(String msg) System.out.println(SuperClass constructor: +msg);class SubClass extends SuperClasspublic SubClass(String msg)Super(msg); /父类没有无参的构造方法,应采用super显示调用父类的构造方法System.out.println(SubClass
11、constructor); public class Test1 public static void main(String args) SubClass descendent = new SubClass();4) 利用多态性编程,创建一个抽象类shape类,定义一个函数Area为求面积的公共方法,再定义Triangle,Rectangle和circle类,实现computerArea方法;增加display方法,显示name和area,并在Triangle,Rectangle和circle类覆盖该方法,并为每个类增加自己的构造方法;在主类中创建不同对象,求得不同形状的面积。答案略。实验8
12、一、选择题1关于异常的含义,下列描述中最正确的一个是( D )。A程序编译错误B程序语法错误C程序自定义的异常事件D程序编译或运行时发生的异常事件【解析】异常就是程序编译或运行时发生的异常事件。2自定义异常时,可以通过对下列哪一项进行继承?( C )AError类BApplet类CException类及其子类DAssertionError类【解析】自定义异常类时,该类必须继承Exception类及其子类。3对应try和catch子句的排列方式,下列哪一项是正确的?( A )A子类异常在前,父类异常在后B父类异常在前,子类异常在后C只能有子类异常 D父类和子类不能同时出现在try语句块中【解析】
13、对应try和catch子句的排列方式,要求子类异常(范围小的异常)在前,父类异常(范围大的异常)在后。4运行下面程序时,会产生什么异常?( A )public class X7_1_4 public static void main(String args) int x = 0;int y = 5/x;int z = 1,2,3,4;int p = z4;AArithmeticExceptionBNumberFormatExceptionCArrayIndexOutOfBoundsException DIOException【解析】当程序执行到“int y = 5/x”语句时,发生异常,程序中
14、止执行,因此发生ArithmeticException异常。5运行下面程序时,会产生什么异常?( C )public class X7_1_5 public static void main(String args) int z = 1,2,3,4;int p = z4;int x = 0;int y = 5/x;AArithmeticExceptionBNumberFormatExceptionCArrayIndexOutOfBoundsException DIOException【解析】当程序执行到“int p = z4”语句时,发生异常,程序中止执行,因此发生ArrayIndexOutO
15、fBoundsException异常。6下列程序执行的结果是( B )。 public class X7_1_6 public static void main(String args) tryreturn;finallySystem.out.println(Finally);A程序正常运行,但不输出任何结果B程序正常运行,并输出FinallyC编译通过,但运行时出现异常D因为没有catch子句,因此不能通过编译【解析】在执行try-catch-finally语句块时,最后必须执行finally语句块中的内容,而本程序没有异常发生,因此程序正常运行,并输出Finally。7下列代码中给出正确的
16、在方法体内抛出异常的是( B )。Anew throw Exception( );Bthrow new Exception( );Cthrows IOException();Dthrows IOException;【解析】在方法体内抛出异常时只能使用throw,而不能使用throws,另外,“new Exception( )”是创建一个异常,因此B是正确的。8下列描述了Java语言通过面相对象的方法进行异常处理的好处,请选出不在这些好处范围之内的一项( C )A把各种不同的异常事件进行分类,体现了良好的继承性B把错误处理代码从常规代码中分离出来C可以利用异常处理机制代替传统的控制流程D这种机制
17、对具有动态运行特性的复杂程序提供了强有力的支持【解析】异常处理机制不能代替传统的流程控制。二、编程题1编写一个系统自动抛出的、系统自行处理的数组大小为负数的程序。【编程分析】当编写的程序中没有处理异常的语句时,系统会自动抛出异常,并自行进行处理。【参考程序】public class X7_3_1 public static void main(String args)int a = new int-5;for(int i=0; i5) / 当输入的n值大于5时将由throw抛出异常throw new ArrayIndexOutOfBoundsException();System.out.pri
18、ntln(程序继续执行);for(int i=0; in; i+)ai = 10 + i;System.out.print(ai+t);System.out.println();【运行结果】8Exception in thread main java.lang.ArrayIndexOutOfBoundsException at C1.main(C1.java:9)3编写一个系统自动抛出的、由trycatch捕捉处理的分母为0以及数组下标越界的程序。【编程分析】当在try语句块中出现分母为0的情况时,如果在catch参数中有ArithmeticException对象,则就能捕捉到该异常并进行处理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 实验 答案 15
限制150内