找些 java 封装 多态 抽象 的练习题
越详细越好  选择 填空 编程 都好  越多越好
希望大家给找我一些  另外附上答案
俺将感激不尽!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【zhengdian】截止到2008-07-28 14:12:04的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:0                        
    结贴的百分比:0.00  %               结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   


    一、选择题。
    1. 编译Java  Applet 源程序文件产生的字节码文件的扩展名为(      )。
             A、java       B、class       C、html      D、exe
         答:B
    2. main方法是Java  Application程序执行的入口点,关于main方法的方法头以下哪项是合法的(     )?
    A、public  static  void  main( )
    B、public  static  void   main( String  args[] )
    C、public static int  main(String  [] arg )
    D、public  void  main(String  arg[] )
         答:B
    3.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(      )。
        A、static  void  method( )            B、public  void  method( )    
      C、final  void  method( )             D、abstract  void  method( )
         答:A
    4.下列哪个是合法的Java标识符?(     )
            A、Tree&Glasses                      B、FirstJavaApplet
            C、_$theLastOne                      D、273.5
         答:B 、 C
    5.Java  Application源程序的主类是指包含有(     )方法的类。
    A、main方法              B、toString方法
    C、init方法               D、actionPerfromed方法
         答:A
    6.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(     )个比特位。
            A、8        B、16         C、32         D、64
         答:B
    7.设 a = 8,则表达式  a >>> 2 的值是(      )。
             A、1          B、2          C、3          D、4
         答:B
    8.若a的值为3时,下列程序段被执行后,c的值是多少?(     )
             c = 1;
             if  ( a>0 )  if  ( a>3 )  c = 2;   else   c = 3;    else   c = 4;
              A、1           B、2          C、3          D、4
         答:C
    9.在编写Java  Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上(      )语句。
             A、import   java.awt.* ;        B、import   java.applet.Applet ;
        C、import   java.io.* ;         D、import   java.awt.Graphics ;
         答:C 
    10.对于构造函数,下列叙述正确的是(     )。
              A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
              B、构造函数的返回类型只能是void型。
              C、构造函数的主要作用是完成对类的对象的初始化工作。
              D、一般在创建新对象时,系统会自动调用构造函数。
         答:A  C  D
    11.下面的是关于类及其修饰符的一些描述,正确的是:(       )。
              A、abstract类只能用来派生子类,不能用来创建abstract类的对象。
              B、final类不但可以用来派生子类,也可以用来创建final类的对象。
              C、abstract不能与final同时修饰一个类。
              D、abstract方法必须在abstract类中声明,但abstract类定义中可以没
    有abstract方法。
         答:A  C  D
    12. 若需要定义一个类域或类方法,应使用哪种修饰符?(     )
            A、static       B、package        C、private       D、public
         答:A
    13.若在某一个类定义中定义有如下的方法: abstract  void  performDial( );
    该方法属于(     )。
            A、本地方法      B、最终方法      C、解态方法       D、抽象方法
         答:D
    14. 下列关于静态初始化器的叙述中,哪一个是正确的?(     )
            A、静态初始化器是在构造函数之前加上static修饰符。
            B、静态初始化器是对类自身进行初始化。
            C、静态初始化器在同一个类中只能有一个。
            D、静态初始化器是在其所属的类加载内存时由系统自动调用执行。
         答:B    D
    15.不使用static修饰符限定的方法称为对象(或实例)方法,下列哪一个说法是正确的?(     )
            A、实例方法可以直接调用父类的实例方法。
            B、实例方法可以直接调用父类的类方法。
            C、实例方法可以直接调用其他类的实例方法。
            D、实例方法可以直接调用本类的类方法。
         答:B  D
    16.设有下面两个类的定义:
         class  Person {                        class  Student  extends  Person {
             long    id;     // 身份证号            int  score;  // 入学总分
             String  name;   // 姓名                int  getScore(){
          }                                             return  score;
                                                    }
                                                }
    问:类Person和类Student的关系是(     )。
            A、包含关系                       B、继承关系
            C、关联关系                       D、无关系,上述类定义有语法错误
         答:B、
    17. 设有下面的两个类定义:
         class  AA {  
    void  Show(){ System.out.println(“我喜欢Java!”); 
    }
         class  BB extends  AA { 
    void  Show(){ System.out.println(“我喜欢C++!”);
    }
    则顺序执行如下语句后输出结果为:(     )
         AA   a;          BB   b;
    a.Show();        b.Show();
             A、我喜欢Java!                    B、我喜欢C++!
                我喜欢C++!                        我喜欢Java!
             C、我喜欢Java!                    D、我喜欢C++!
                我喜欢Java!                       我喜欢C++!
        答:A
    18. 设有下面的一个类定义:
    class  AA {
    static  void  Show( ){ System.out.println(“我喜欢Java!”); }
    }
    class  BB {  void  Show( ){ System.out.println(“我喜欢C++!”); } }
    若已经使用AA类创建对象a和BB类创建对象b,则下面哪一个方法调用是正确的:(     )
             A、a.Show( )             B、AA.Show( );
                b.Show( )                 BB.Show( );
             C、AA.Show( );           D、a.Show( );
              b.Show( );                 BB.Show( );
         答:C
    19.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为(     )。
              A、隐藏         B、覆盖       C、重载       D、Java不支持此特性
         答:C
    20. 对于构造函数,下列叙述正确的是(     )。
              A、构造函数也允许重载。
              B、子类无条件地继承父类的无参构造函数。
              C、子类不允许调用父类的构造函数。
            D、在同一个类中定义的重载构造函数可以相互调用。
         答:A  B  D
    21.在使用interface声明一个接口时,只可以使用(     )修饰符修饰该接口。
            A、private                           B、protected
            C、private  protected                D、public
         答:D
    22.设有下面两个赋值语句:
             a = Integer.parseInt(“1024”);
             b = Integer.valueOf(“1024”).intValue();
         下述说法正确的是(     )。
             A、a是整数类型变量,b是整数类对象。
             B、a是整数类对象,b是整数类型变量。
             C、a和b都是整数类对象并且它们的值相等。
             D、a和b都是整数类型变量并且它们的值相等。
         答:D
    23.在Java  Applet程序用户自定义的Applet子类中,常常重载(      )方法在Applet的界面中显示文字、图形和其它界面元素。
             A、start( )                    B、stop( )
             C、init( )                     D、paint( )
         答:D
    24.下面的语句的作用是:(     )。
              Vector  MyVector = new  Vector(100,50);
         A、创建一个数组类对象MyVector,有100个元素的空间,每个元素的初值为50。
         B、创建一个向量类对象MyVector,有100个元素的空间,每个元素的初值为50。
         C、创建一个数组类对象MyVector,有100个元素的空间,若空间使用完时,以50
    个元素空间单位递增。
         D、创建一个向量类对象MyVector,有100个元素的空间,若空间使用完时,以50
    个元素空间单位递增。
         答:D
    25.在Java中,存放字符串常量的对象属于(     )类对象。
                  A、Character                  B、String
                  C、StringBuffer               D、Vector
         答:B
    26.在Java中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是(     )包。
                 A、java.io                     B、java.awt
                 C、java.applet                 D、java.awt.event
         答:D
    27.在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用(     )类的对象来实现。
                 A、Label                      B、Button
                 C、TextArea                   D、TextField
         答:A
    28. 创建一个标识有“关闭”按钮的语句是(      )。
    A、TextField  b = new  TextField(“关闭”);
    B、Label  b = new  Label(“关闭”);
    C、Checkbox  b = new  Checkbox(“关闭”);
              D、Button   b = new  Button(“关闭”);
         答:D
    29. 在编写异常处理的Java程序中,每个catch语句块都应该与(      )语句块对应,使得用该语句块来启动Java的异常处理机制。
             A、if – else      B、switch      C、try       D、throw
         答:C30. 在编写Java  Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(      )语句。
          A、import   java.awt.* ;        B、import   java.applet.* ;
     C、import   java.io.* ;         D、import   java.awt.event.* ;
         答:D31.对于子类的构造函数说明,下列叙述中不正确的是(     )。
           A、子类无条件地继承父类的无参构造函数。
    B、子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函
    数,但这个调用语句必须是子类构造函数的第一个可执行语句。
    C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行
    自己的构造函数。
    D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。
         答:D
      

  3.   

    二、填空题。1. 一个复杂的应用系统必然包括有多个对象,这些对象间可能存在的关系有三种,它们是:                    、                     和                       。
         答:包含、继承、关联
    2. 设x = 2 ,则表达式 ( x + + ) * 3 的值是              。
         答:6
    3. 若x = 5,y = 10,则x > y和x <= y的逻辑值分别为            和            。
         答:false、true
    4. 顺序执行以下两个语句的输出结果是:                   。
        String  s = “我喜欢学习Java!”;     
    System.out.println(s.length( ));
         答:10
    5. 据程序的构成和运行环境的不同,Java源程序分为两大类:                     程序和                    程序。
         答:Java  Application 、 Java  Applet  ( 或 Application、Applet )
    6. 如果一个Java源程序文件中定义有4个类,则使用Sun公司的JDK编译器javac编译该源程序文件将产生       个文件名与类名相同而扩展名为         的字节码文件。
         答:4、class
    7. 开发与运行Java程序需要经过的三个主要步骤为                             、
                                       和                                   。
         答:编辑源程序、编译生成字节码、解释运行字节码
    8. 如果一个Java  Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是                          类的子类并且存储该源程序文件的文件名必须为                                   。
         答:Applet、MyApplet.java
    9. 一个Java  Application源程序文件名为MyJavaApplication.java,如果使用Sun公司的Java开发工具JDK编译该源程序文件并使用其虚拟机运算这个程序的字节码文件,应该顺序执行如下两个命令:
                                                                      、
                                                                      。
         答:javac   MyJavaApplication.java 、java  MyJavaApplication 
    10. 在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码字符占用          字节内存空间,这样,无论是中文字符还是英文字符,每个都是占用         字节内存空间。
         答:2、2
    11. 在Java程序中定义的类有两种成员:                  、                 。
        答:域成员、方法成员
    12. Java源程序是由类定义组成的,每个程序中可以定义若干个类,但是只有一个类是主类。在Java  Application中,这个主类是指包含                 方法的类;在Java 
    Applet里,这个主类是一个系统类                 的子类。
         答:main      Applet
    13. 创建一个名为 MyPackage 的包的语句是                                  ,
    该语句应该放在程序的位置为:                                               。
         答:package   MyPackage ;     应该在程序第一句。
    14.          方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。          方法是不能被当前类的子类重新定义的方法。
         答:抽象方法、最终方法 (或 abstract方法、final方法)
    15. 形式参数指的是方法被            时的参数行,实际参数是方法被             
    时所传递进去的变量或值。
         答:定义、调用
    16. 多态是指                                                   ,在Java中有两种多态,一种是使用方法的            实现多态,另一种是使用方法的            实现多态。
         答:一个程序中有多个同名的不同方法    覆盖    重载
    17. 在Java程序中,通过类的定义只能实现           重继承,但通过接口的定义可以实现             重继承关系。
         答:单、多
    18. 子类重新定义一个与从父类那里继承来的域变量完全相同的变量,这种面向对象程序设计特性称为域的                。
         答:隐藏
    19. 字符串分为两大类,一类是字符串常量,使用               类的对象表示;另一类是字符串变量,使用               类的对象表示。
         答:String、StringBuffer
    20. 设有数组定义:int   MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100 };
    则执行以下几个语句后的输出结果是                         。
          int  s = 0 ;
    for  ( int  i = 0 ; i < MyIntArray.length ; i + + )
        s += MyIntArray[i] ;
    System.out.println( s );
         答:550
    21. 在Applet中,创建一个具有10行45列的多行文本区域对象ta的语句为:
                                                                    
         答:TextArea  ta = new  TextArea( 10 , 45 );
    22. 创建一个标识有“广西广播电视大学”字样的标签对象gxdd的语句为                                      ;创建一个标识有“关闭”字样的按钮对象gb的语句为                                      。
         答:Label  gxdd = new  Label(“广西广播电视大学”);
             Button  gb = new  Button(“关闭”);
      

  4.   

    写出下列程序完成的功能。
    1. public  class   Sum
    {  public  static  void   main( String  args[ ])
       {   double   sum = 0.0 ;
           for  ( int  i = 1 ;  i <= 100 ; i + + )
               sum += 1.0/(double) i ;
          System.out.println( "sum="+sum );
       }
    }
        答:计算 1/1+1/2+1/3+...+1/100 的值。2.import  java.io.* ;
        public  class  Reverse
        {   public  static  void   main(String  args[ ])
            {   int   i , n =10 ;
                int  a[ ] = new int[10];
                for  ( i = 0 ; i < n ; i ++ )
                try {
                     BufferedReader  br = new BufferedReader(
                             new  InputStreamReader(System.in));
                     a[i] = Integer.parseInt(br.readLine( ));  // 输入一个整数
                } catch ( IOException  e ) { } ;
                for  ( i = n-1 ; i >= 0 ; i ―― )
                    System.out.print(a[i]+"  ");
            System.out.println( );
            }
       }
      答:从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。3.import     java.awt.*;
        public    class    abc
        {  public   static   void    main(String args[])
              {      new FrameOut();       }
        }
        class   FrameOut   extends    Frame     //  Frame为系统定
         {   Button btn;                                        //  义的窗框类
             FrameOut( )
             {       super("按钮");
                     btn = new  Button("按下我");
                     setLayout(new   FlowLayout( ));
                     add(btn);
                     setSize(300,200);
                     show( );
              }
          }
         答:创建一个标题为"按钮"的窗框,窗框中显示有"按下我"字样的按钮。4. import java.io.*;
    public  class  Class1
    {
        public  static  void   main(String  args[ ]){  
           int   i , Max , Min ;
       int  a[ ] = { 12,67,8,98,23,56,124,55,99,100 };
       Max = Min = a[0];
       for  ( i = 1 ; i < a.length; i ++ ) {
       if  ( a[i]<Min )  Min = a[i];
       if  ( a[i]>Max )  Max = a[i];
       }
       System.out.println( Max+"  "+Min );
           System.out.println( );
        }
    }
         答:在数组中查找并输出最大值和最小值。5. public  class  ABC
    {
        public  static  void   main(String  args[ ]){  
           int   i , j ;
       int  a[ ] = { 12,67,8,98,23,56,124,55,99,100 };
       for  ( i = 0 ; i < a.length-1; i ++ ) {
       int  k = i;
       for  ( j = i ; j < a.length ;  j++ )
       if  ( a[j]<a[k] )  k = j;
       int  temp =a[i];
       a[i] = a[k];
       a[k] = temp;
       }
       for  ( i =0 ; i<a.length; i++ )
       System.out.print(a[i]+"  ");
           System.out.println( );
        }
    }
        答:使用选择法对数组a的数据进行升序排序,然后输出排序后的结果。6.import  java.io.*;
    public  class  Class1  {   
       public  static  void  main( String  args[] )
       {   
           Fact  N = new  Fact( 4 ); 
           System.out.println( N.fact( ) );
        }
    }class  Fact  {  
         int  n ;  
     Fact( int  nn ) { n = nn;  }
         int  fact( ) {
     int  i , f = 1;
     for ( i=1;  i<=n; i++ )
     f = f*i;
     return  f;
     } 
    }
        答:定义一个计算n!的类Fact,然后主类中创建一个对象求解4!的值。7.import  java.awt.*;
    import  java.applet.Applet;
    public  class  DrawMyImage  extends  Applet
    {
    Image  myImage;    // 定义一个图像类Image的对象myImage
    public  void  init( )
    {
    myImage = getImage(getDocumentBase( ),"pica.jpg");
    }
    public  void  paint(Graphics g)
    {
    g.drawImage(myImage,0,0,this);
    }
    }
         答:在Applet界面中显示当前文件夹下名为“pica.jpg”的图像。8.  import  java.io.*;
    public  class  Class1  {   
    public  static  void  main( String  args[ ] )
    {     SubClass  a = new  SubClass( 10,3 ); 
              System.out.println( a.exp( ));
        }
    }
    class  SuperClass  {  
        float  x;
        int    n;  
        SuperClass( float  xx , int  nn ) { x = xx ;   n = nn; }
    }
    class  SubClass  extends  SuperClass {
     SubClass( float  xx , int  nn ) { super( xx , nn ); }
         float  exp( ) {
         float  s = 1;
         for  ( int  i = 1;  i<=n;  i++ )   s = s*x;
         return  s;  

    }
         答:定义一个计算xn的类,然后用该类求103的值。9.  import  java.awt.*;
    import  java.applet.Applet;
    public  class  Applet1  extends  Applet
    {
    public  void  paint( Graphics  g )
    {
    g.drawLine( 30,5,100,45 );
    g.drawRect( 30,50,50,20 );
    g.drawOval( 30,80,50,40 );
    g.drawString( "They  are  figures!" , 30,150 );
    }
    }
         答:在Applet界面中显示一些由直线、矩形框、椭圆框和文字组成的图形。10.import    java.io.*;
        public    class   abc
        {   public   static   void   main(String args[])
             {   SubClass    sb = new   SubClass( );        
                 System.out.println(sb.max( ));
             }
         }
         class    SuperClass
         {   int  a = 10 , b = 20 ;  }
         class  SubClass  extends  SuperClass
       {   int  max( ) {  return   ((a>b)?a:b);  }  }
         答:求两个数的最大值。
      

  5.   

    四、写出下面程序的运行结果。1.import    java.io.*;
    public  class  abc
    {     public  static  void  main(String args[ ])
          {    AB  s = new  AB("Hello!","I love JAVA.");
               System.out.println(s.toString( ));
          }
    }
    class   AB {
      String   s1;
      String   s2;
      AB( String  str1 , String  str2 )
      {  s1 = str1;  s2 = str2; }
      public   String   toString( )
      { return  s1+s2;}
    }
      答:Hello! I  love  JAVA.2.import    java.io.* ;
        public   class  abc
        {
              public   static   void    main(String  args[ ])
              {    int   i , s = 0 ;
                   int  a[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 };
                   for  ( i = 0 ; i < a.length ; i ++ )
                         if ( a[i]%3 = = 0 )  s += a[i] ; 
                   System.out.println("s="+s);
               }
         }
         答:s = 1803. import   java.io.* ;
         public  class  abc
         {
              public  static  void   main(String  args[ ])
              {  SubSubClass  x = new  SubSubClass(10 , 20 , 30);
                 x.show();
              }
         }
        class  SuperClass
        {   int  a,b;
            SuperClass(int aa , int  bb)
             {  a=aa;  b=bb;  }
           void  show( )
            {  System.out.println("a="+a+"\nb="+b);  }
        }
        class   SubClass   extends   SuperClass
        {  int c;
           SubClass(int  aa,int  bb,int  cc)
           {   super(aa,bb);
               c=cc;
           }
        }
       class   SubSubClass   extends   SubClass
       {   int  a;
           SubSubClass(int aa,int  bb,int  cc)
           {   super(aa,bb,cc);
               a=aa+bb+cc;
            }
           void  show()
            {  System.out.println("a="+a+"\nb="+b+"\nc="+c);  }
      }
       答:a=60
           b=20
           c=304. import    java.io.*;
      public class abc
        {
             public static void main(String args[])
              {
                    String  s1 = "Hello!";
                    String  s2 = new String("World!");
                    System.out.println(s1.concat(s2));
             }
         }
         答:Hello!  World!5.  import  java.io.* ;
    public  class  ABC
      {
    public  static  void   main(String  args[ ])
    {  int   i  ;
             int  a[ ] = { 11,22,33,44,55,66,77,88,99 };
             for  ( i = 0 ; i <= a.length / 2 ; i ++ )
                   System.out.print( a[i]+a[a.length-i-1]+"  ");
         System.out.println( );
    }
        }
         答:110  110  110  110  1106. import  java.io.*;
    class  Parent
    {
    void  printMe()
    {
    System.out.println("parent");
    }
    }
    class  Child  extends Parent
    {
    void  printMe()
    {
    System.out.println("child");
    }
    void  printAll()
    {
    super.printMe();
        this.printMe();
        printMe();
    }
    }public class  Class1
    {
    public static void main(String  args[ ])
    {
           Child  myC = new  Child( );
       myC.printAll( );
    }
    }
         答:parent
             child
             child