} } }
第七题:
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中。由你自己定义的应用程序类来调用。 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第3章-面向对象程序设计-上机实验要求 (1)(4)在线全文阅读。
相关推荐: