JAVA实验7-9+答案

2018-12-08 21:11

实验7

1. 编一个程序,包含以下文件。

(1)Shape.java文件,在该文件中定义接口Shape,该接口在shape包中。 属性:PI。

方法:求面积的方法area()。

(2)Circle.java文件,在该文件中定义圆类Circle,该类在circle包中,实现Shape接口。 属性:圆半径radius。

方法:构造方法;实现接口中求面积方法area();求周长方法perimeter()。 (3)“Cylinder.java”文件,在该文件中定义圆柱体类Cylinder,该类口在cylinder包中,

继承圆类。

属性:圆柱体高度height。

方法:构造方法;求表面积方法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 Shape{ // 定义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; import 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(\ System.out.println(\ System.out.println(\ System.out.println(\ Cylinder cy1 = new Cylinder(27.3,32.7); Cylinder cy2 = new Cylinder(133.5,155.8); System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ } }

// 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接口的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(double 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的方法中计算1~n的和,在Pro的方法中计算1~n的乘积 interface OneToN { public void disp(int n); }

class Sum implements OneToN { public void disp(int n) { int sum=0; for(int i=1;i<=n;i++) { sum=sum+i; } System.out.println(sum); } }

class Pro implements OneToN { public 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 application logic here Sum x=new Sum(); x.disp(100); } }

3)改错,上传正确答案,并以注释形式给出错误原因 class SuperClass { public SuperClass(String msg) { System.out.println(\}

class SubClass extends SuperClass { public SubClass(String msg) { Super(msg); //父类没有无参的构造方法,应采用super显示调用父类的构造方法 System.out.println(\ } }

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

一、选择题

1.关于异常的含义,下列描述中最正确的一个是( D )。 A.程序编译错误 B.程序语法错误 C.程序自定义的异常事件 D.程序编译或运行时发生的异常事件 【解析】异常就是程序编译或运行时发生的异常事件。

2.自定义异常时,可以通过对下列哪一项进行继承?( C ) A.Error类 B.Applet类 C.Exception类及其子类 D.AssertionError类

【解析】自定义异常类时,该类必须继承Exception类及其子类。

3.对应try和catch子句的排列方式,下列哪一项是正确的?( A ) A.子类异常在前,父类异常在后 B.父类异常在前,子类异常在后 C.只能有子类异常 D.父类和子类不能同时出现在try语句块中 【解析】对应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 = z[4]; } }

A.ArithmeticException B.NumberFormatException C.ArrayIndexOutOfBoundsException D.IOException

【解析】当程序执行到“int y = 5/x”语句时,发生异常,程序中止执行,因此发生ArithmeticException异常。

5.运行下面程序时,会产生什么异常?( C )

public class X7_1_5 {

public static void main(String[] args) { int[] z = {1,2,3,4}; int p = z[4]; int x = 0; int y = 5/x; } }

A.ArithmeticException B.NumberFormatException C.ArrayIndexOutOfBoundsException D.IOException

【解析】当程序执行到“int p = z[4]”语句时,发生异常,程序中止执行,因此发生ArrayIndexOutOfBoundsException异常。 6.下列程序执行的结果是( B )。

public class X7_1_6 {

public static void main(String[] args) { try{ return; } finally{ System.out.println(\ } } }

A.程序正常运行,但不输出任何结果 B.程序正常运行,并输出Finally C.编译通过,但运行时出现异常 D.因为没有catch子句,因此不能通过编译 【解析】在执行try-catch-finally语句块时,最后必须执行finally语句块中的内容,而本程序没有异常发生,因此程序正常运行,并输出Finally。

7.下列代码中给出正确的在方法体内抛出异常的是( B )。 A.new throw Exception(\ B.throw new Exception(\C.throws IOException(); D.throws IOException; 【解析】在方法体内抛出异常时只能使用throw,而不能使用throws,另外,“new Exception(\


JAVA实验7-9+答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:菩萨兵第二课时教学设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: