第3章-面向对象程序设计-上机实验要求 (1)(4)

2019-03-28 13:23

} } }

第七题:

7. 通过编制一个程序来加深对嵌套类、内部类和局部的理解,该程序要求定义一个外部类

Outer,然后在Outer类中定义一个内部类Inner和局部类Local,Inner类和Local类是任务是显示出外部类中的数组元素,然后求出这些数组元素的平均值。程序运行结果如下图所示:

实验要求:

A. 现将下面的源程序补充完整

B. 编译完成后将产生4个class文件,分别是InnerClass.class,Outer.class,

Outer$Inner.class,Outer$1Local.class,注意这些类的命名规则,然后运行InnerClassTest.class文件,观察程序输出的结果。

C. 从程序运行结果来看,内部类Inner和局部类Local都能直接访问外部类Outer的

data[]数组,那么反过来外部类中的方法能否直接访问内部类Inner和局部类Local中的成员呢?将checkInner()方法中的innerObj.show( );改成show( );同时checkLocal()中的localObj.show( );方法改成show( );测试这个结果 D. 在内部类Inner的定义前加上static使其变成static嵌套类。

Static class Inner{}

编译会出现什么结果?

E. 在上题中由于static嵌套类不能直接访问其外部类的非静态成员,从而导致编译错

误。如果把外部类Outer的data[]数组也定义成static类型,static int data[]看看能否解决这个问题,并解释其中的原因。

F. 在Java中,static嵌套类可以像普通类一样进行声明,现保持上二题所做的修改,

同时在InnerClassTest类的main()方法的最后加上如下语句,然后编译运行观察结果。

Outer.Inner innerObj2=new Outer.Inner(); innerObj2.show();

G. 将源代码恢复到最初的状态,并在此基础上做如下修改:在内部类Inner中新增一

个静态变量static int result;,然后将average()方法所求出的平均值存入该变量中; result=sum/data.length; return result;

编译运行注意观察错误提示。 H. 源代码:InnerClassTest.java class Outer {

private int data[];

Outer(int x[]) { data = x; }

void checkInner() { Inner innerObj = new Inner(); //调用Inner对象的show()方法 System.out.println(\内部类计算的平均值: \ }

void checkLocal() { class Local {

void show() { System.out.print(\从局部类显示数组元素:\ for (int i=0; i

int average() {

int sum=0; for (int i=1; i

} }; Local localObj = new Local();

localObj.show( );

System.out.println(\局部类计算的平均值: \ }

class Inner {

void show() { System.out.print(\从内部类显示数组元素:\ for (int i=0; i

int average() {

int sum=0; for (int i=1; i

public class InnerClassTest {

public static void main(String[] args) {

int a[] = {6,8,9,22,34,7,2,1,15}; Outer outerObj = new Outer(a); outerObj.checkInner(); //调用outerObj对象的checkLocal方法 } }

第八题(自已动手):

实验要求:

A. 设计和实现一个Soundable接口,该接口具有发声功能,同时还能调节声音大小。

Soundable接口的这些功能将会由三种声音设备来具体实现,它们分别是收声机Radio、随声听Walkman和手机Mobilephone。最后还要设计一个应用程序类来使用这些实现了Soundable接口声音设备类。

B. 程序运行时,先询问用户想听哪种设备,然后程序就会按照该设备的工作方式来发

出声音(注:这里发出声音,只是要大家显示出相应的文字提示即可)。在运行过程中,一直提示增大音量、减小音量还是关闭手机,只有在选择关闭手机时,才会结束程序的运行。程序运行效果如下图所示:

C. 要求Soundable接口、收声机Radio、随声听Walkman和手机Mobilephone放在包

mysound中。由你自己定义的应用程序类来调用。


第3章-面向对象程序设计-上机实验要求 (1)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新标准英语第二册练习题[1]

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

马上注册会员

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