Java 2 实用教程(第5版)耿祥义版 习题七

一、问答题
1.    内部类的外嵌类的成员变量在内部类中仍然有效吗?
2.    内部类中的方法也可以调用外嵌类中的方法吗?
3.    内部类的类体中可以声明类变量和类方法吗?
4.    匿名类一定是内部类吗?
二、选择题
1.下列代码标注的(A,B,C,D)中哪一个是错误的?
class OutClass {
    int m = 1;
    static float x;             //A
    class InnerClass {
       int m =12;            //B
       static float n =20.89f;   //C 
       InnerClass(){
       }
       void f() {
          m = 100;
       }
    }
    void cry() {
      InnerClass tom = new InnerClass(); //D
    }
}
2.下列哪一个叙述是正确的?
A.和接口有关的匿名类可以是抽象类。
B.和类有关的匿名类还可以额外地实现某个指定的接口。
C.和类有关的匿名类一定是该类的一个非抽象子类。
D.和接口有关的匿名类的类体中可以有static成员变量。
三、阅读程序
1.请说出下列程序的输出结果。
class Cry {
  public void cry() {
       System.out.println("大家好");
    }
}
public class E {
  public static void main(String args[]) {
       Cry hello=new Cry() {
                    public void  cry() {
                       System.out.println("大家好,祝工作顺利!");
                     }
                };
         hello.cry(); 
   } 
}
2.请说出下列程序的输出结果。
interface Com{
   public void speak();
}
public class E {
   public static void main(String args[]) {
      Com p=new Com() {
                public void speak() {
                   System.out.println("p是接口变量");    
                }
            };
      p.speak();
   } 
}
3.请说出下列程序的输出结果。
import java.io.IOException; 
public class E { 
   public static void main(String args[]){ 
      try {  methodA(); 
      }
      catch(IOException e){ 
         System.out.print("你好");
         return;  
      } 
      finally {
        System.out.println(" fine thanks");
      }
  }
  public static void methodA() throws IOException{ 
      throw new IOException(); 
  } 
}
4.实习下列程序,了解静态内部类。
class RedCowForm {
     static class RedCow {   //静态内部类是外嵌类中的一种静态数据类型
       void speak() {
         System.out.println("我是红牛");
      }
   }
}
class BlackCowForm {
   public static void main(String args[]) {
      RedCowForm.RedCow red = 
new RedCowForm.RedCow();  //如果RedCom不是静态内部类,此代码非法
      red.speak(); 
   } 
}
四、编写程序
第3章例子9的程序允许用户在键盘依次输入若干个数字(每输入一个数字都需要按回车键确认),程序将计算出这些数的和以及平均值。请在第3章的例子9中增加断言语句,当用户输入的数字大于100或小于0时,程序立刻终止执行,并提示这是一个非法的成绩数据。
 

一、问答题
1.有效。
2.可以。
3.不可以。
4.一定是。
二、选择题
1.C。2.C。
三、阅读程序
1.大家好,祝工作顺利!
2.p是接口变量。
3.你好 fine thanks。
4.属于上机实习程序,解答略。
四、编程题
import java.util.*;
public class E {
    public static void main (String args[ ]){
      Scanner reader = new Scanner(System.in);
      double sum = 0;
       int m = 0;
       while(reader.hasNextDouble()){
           double x = reader.nextDouble();
           assert x<=100 &&x>=0:"数据不合理";
           m = m+1;
           sum = sum+x;
       }//-ea
       System.out.printf("%d个数的和为%f\n",m,sum);
       System.out.printf("%d个数的平均值是%f\n",m,sum/m); 
    }
}

 


版权声明:本文为zs_pnzzz原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。