JAVA类与对象及数组习题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JA V A类和对象及数组习题
一、选择题
(1)下列构造方法的调用方式中,正确的是(D )--原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。
A.按照一般方法调用B.由用户直接调用 C.只能通过new自动调用 D.被系统调用
(2)在Java中,能实现多重继承效果的方式是( C )--原因:一个类可以同时实现
多个接口。Java接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。
A.内部类 B.适配器 C.接口 D.同步
(3)int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java中定义常量用关键字final来定义。A.public int MAX_LENGTH=100 B.final int MAX_LENGTH=100 C.public const int MAX_LENGTH=100 D.public final int MAX_LENGTH=100 (4)下列叙述中,正确的是( A )—原因:Java严格区分大小写,所以变量number
与Number不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*-------*/”和文档注释/**-------*/。Java源文件中的public类只能有一个。
A. 声明变量时必须指定一个类型
B. Java认为变量number与Number相同
C. Java中唯一的注释方式是"//"
D. 源文件中public类可以有0或多个
(5)下列叙述中,错误的是( D )—原因:子类继承父类,并且可以有自己的成员变
量和成员方法。所以可以认为子类是父类的扩展。
A. 父类不能替代子类
B. 子类能够替代父类
C. 子类继承父类
D. 父类包含子类
(6)下列代码中,将引起编译错误的行是( B )—原因:定义float型变量并对其初始化时,其值后面要加一个f.
1)public 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中一个类不能同时继承一个类和实现一个接口
D.java的单一继承使代码更可靠
(8)下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?( B ) –原因:无修饰符时是缺省修饰,它可以被同一包中的任何类访问。A.private B.无修饰符 C.public D.protected
(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 main(String arg[])
{ Test t = new Test(); } }
A.t.f; B.this.n; C.Test.m; D.Test.f;
(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.println(i); }
public static void main(String args[])
{ Test test = new Test(); test.aMethod(); } }
A.编译错误 B.0 C.1 D.运行成功,但不输出
(13)下列关于内部类的说法不正确的是( C ) –原因:内部类可以声明为private或protected,还可以声明为abstract或final;
A.内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用
B.内部类可以使用它所在类的静态成员变量和实例成员变量
C.内部类不可以用abstract修饰符定义为抽象类
D.内部类可作为其他类的成员,而且可访问它所在类的成员
(14)顺序执行下列程序语句后,则b的值是( C ) –原因:String类的substring方法用于返回一个新的字符串对象,在当前字符串中,求以第一个参数为起始索引位置,第二个参数为结束索引位置的子串的值。其中不包括结束索引位置的那个字符。String a="Hello";
String b=a.substring(0,2);
A.Hello B.Hel C.He D.null
(15)为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名