JAVA类和对象及数组习题
一、选择题
1)下列构造方法的调用方式中,正确的是( D --原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。
A.按照一般方法调用          B.由用户直接调用
C.只能通过new自动调用      D.被系统调用
2)在Java中,能实现多重继承效果的方式是( C --原因:一个类可以同时实现多个接口。Java接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。
A.内部类    B.适配器    C.接口    D.同步
3intpublic成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是(   D  )—原因:java中定义常量用关键字final来定义。
Apublic  int  MAX_LENGTH=100    Bfinal  int  MAX_LENGTH=100
Cpublic const int MAX_LENGTH=100 Dpublic  final  int MAX_LENGTH=100
4)下列叙述中,正确的是(  A  )—原因:Java严格区分大小写,所以变量numberNumber相同Java 中的注释方式除了“//”行注释之外还有段注释“/*-------*/”文档注释/**-------*/。Java源文件中的public类只能有一个。
 A. 声明变量时必须指定一个类型 
 B. Java认为变量numberNumber相同
 C. Java中唯一的注释方式是"//" 
 D. 源文件中public类可以有0或多个
5)下列叙述中,错误的是( D  )原因:子类继承父类,并且可以有自己的成员变量和成员方法。所以可以认为子类是父类的扩展。
 A. 父类不能替代子类  B. 子类能够替代父类
 C. 子类继承父类      D. 父类包含子类
6)下列代码中,将引起编译错误的行是(     B )—原因:定义float型变量并对其初始化时,其值后面要加一个f.
    1public class Exercise{
    2    public static void main(String args[]){
    3        float f=0.0;
    4        f +=1.0;
    5    }
    6}
 A. 2  B. 3  C. 4  D. 6 
7)下列关于继承的哪项叙述是正确的?(   D  )  –错误原因:JAVA不允许多重继承,但可以通过接口的机制来达到多重继承的目的;一个类可以同时继承一个类和实现多个接口,但是不能同时继承多个类。
A.在java中允许多重继承     
B.在java中一个类只能实现一个接口
C.在java中一个类不能同时继承一个类和实现一个接口
Djava的单一继承使代码更可靠
8)下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?(   B  )原因:无修饰符时是缺省修饰,它可以被同一包中的任何类访问。
Aprivate    B.无修饰符    Cpublic    Dprotected
9)给出下列代码,如何使成员变量m 被方法fun()直接访问?(   C  )原因:静态的成员方法只能访问静态的成员变量。
class Test
{ private int m;
  public static void fun()
  {  ...  }    }
A.将private int m 改为protected int m
B.将private int m 改为 public int m
C.将private int m 改为 static int m
D.将private int m 改为 int m
10)已知有下列类的说明,则下列哪个语句是正确的?(   B  )—原因:f是Test类的私有成员变量,在类外不能访问,所以A不对。m是非静态的变量不能直接用类名来访问,所以C不对。由以上两个原因可知D不对。
public class Test
{ private float f = 1.0f;
  int m = 12;
  static int n=1;
  public static void mainString arg[])
  { Test t = new Test();  }      }
At.f    Bthis.n    CTest.m    DTest.f
java接口有没有构造方法
11)给出下列代码,则数组初始化中哪项是不正确的?(   A  )原因:array2是一个二维数组,而aray1是一个一维数组。
byte[] array1,array2[];
byte array3[][];
byte [][] array4;
A.array2 = array1        B.array2=array3
C.array2=array4          D.array3=array4
12)下列代码的执行结果是A    )原因:在非静态的方法中不能定义静态的变量
且方法aMethod没有返回语句。
public class Test
{  public int aMethod()
  {  static int i=0;        i++;    System.out.printlni;  }
  public static void mainString args[])
  {  Test test = new Test()  test.aMethod(); }    }
A.编译错误  B0    C1      D.运行成功,但不输出
13)下列关于内部类的说法不正确的是(     C )原因:内部类可以声明为private或protected,还可以声明为abstract或final;
A.内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用
B.内部类可以使用它所在类的静态成员变量和实例成员变量
C.内部类不可以用abstract修饰符定义为抽象类
D.内部类可作为其他类的成员,而且可访问它所在类的成员
14)顺序执行下列程序语句后,则b的值是(   C  )原因:String类的substring方法用于返回一个新的字符串对象,在当前字符串中,求以第一个参数为起始索引位置,第二个参数为结束索引位置的子串的值。其中不包括结束索引位置的那个字符。
String a="Hello";
String b=a.substring0,2;
AHello    BHel      CHe    Dnull
(15)AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(    A  )--原因:static修饰的方法又称为静态方法。静态方法是类方法,它可以直接通过类来调用,也可以通过类实例来调用。
Astatic void method( )            B. public void method( )   
Cfinal void method( )            D. abstract void method
(16) 不使用static修饰符限定的方法称为对象(或实例)方法,下列哪一个说法是正确的?(    D --原因:A子类实例方法可以直接调用父类的public和protected实例方法,但不能调用父类的private方法。B类方法也称为静态方法,非静态的方法不能调用静态的方法和成员变量,所以无论是父类还是子类的实例方法都不能调用静态方法。C一个类的实例方法只有这个类的其它方法或对象可以调用,不可以由其它类不经过实例化直接调用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。