Java基础阶段测试含答案.docx

上传人:b****4 文档编号:1411432 上传时间:2022-10-22 格式:DOCX 页数:9 大小:19.35KB
下载 相关 举报
Java基础阶段测试含答案.docx_第1页
第1页 / 共9页
Java基础阶段测试含答案.docx_第2页
第2页 / 共9页
Java基础阶段测试含答案.docx_第3页
第3页 / 共9页
Java基础阶段测试含答案.docx_第4页
第4页 / 共9页
Java基础阶段测试含答案.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Java基础阶段测试含答案.docx

《Java基础阶段测试含答案.docx》由会员分享,可在线阅读,更多相关《Java基础阶段测试含答案.docx(9页珍藏版)》请在冰豆网上搜索。

Java基础阶段测试含答案.docx

Java基础阶段测试含答案

Java基础阶段测试一

一、选择题:

(20分)

1、下列叙述中,正确的是:

()

A声明变量时必须指定一个类型B、Java认为变量number和Number相同

C、Java中唯一的注释方式是“//”D、源文件中public类可以有0或多个

2、在switch(expression)语句中,expression的数据类型不能是:

A

A、doubleB、charC、byteD、short

3、已知int[]a=newint[100];,在下列给出的数组元素中,非法的是:

D

A、a[0]B、a[1]C、a[99]D、a[100]

4、下列语句序列执行后,x的值是(A)。

inta=3,b=4,x=5;

if(++a

A、5B、3C、4D、6

5、设x,y均为已定义的类名,下列声明对象x1的语句中正确的是(C)。

A、publicxx1=newy();B、xx1=x();

C、xx1=newx();D、intxx1;

6、有一个类A,以下为其构造函数的声明,其中正确的是(B)。

A、voidA(intx){...}B、A(intx){...}

C、a(intx){...}D、voida(intx){...}

7.Java语言的类间的继承关系是(B)。

A、多重的B、单继承C、线程的D、不能继承

8、下面说法正确的是(A)。

A、final可修饰类、属性、方法。

B、abstract可修饰类、属性、方法。

abstract可修饰类、方法。

C、定义抽象方法需有方法的返回类型、名称、参数列表和方法体(没有方法体)。

D、用final修饰的变量(常量),在程序中可对这个变量的值进行更改。

9、对于下列代码:

  

1)classPerson{

  2)publicvoidprintValue(inti,intj){//...}

  3)publicvoidprintValue(inti){//...}

  4)}

  5)publicclassTeacherextendsPerson{

  6)publicvoidprintValue(){//...}

  7)publicvoidprintValue(inti){//...}

  8)publicstaticvoidmain(Stringargs[]){

  9)Persont=newTeacher();//赋值兼容规则

  10)t.printValue(10);

  11)}

  第10行语句将调用哪行语句?

(D)

A、line2B、line3C、line6D、line7

10下面关于java中类的说法哪个是不正确的(c)

A、类体中只能有变量定义和成员方法的定义,不能有其他语句。

B、构造函数是类中的特殊方法。

C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义(但只能有一个Public修饰的类)。

11、给出一段程序,选择运行结果()

publicclasssss{

publicstaticvoidmain(Stringargs[])

{

Strings1=args[1];Strings2=args[2];

Strings3=args[3];Strings4=args[4];

System.out.println(“args[2]=”+s2);

}

}

命令行执行:

javasss1234结果是下面哪一个?

A、args[2]=2B、args[2]=nullC、args[2]=1D、运行出现异常

12、下面的是关于类及其修饰符的一些描述,正确的是:

()。

A、abstract类只能用来派生子类,不能用来创建abstract类的对象

(可以用赋值兼容规则 )。

B、final类不但可以用来派生子类,也可以用来创建final类的对象。

C、abstract不能与final同时修饰一个类。

D、abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法。

13、下列关于静态初始化器的叙述中,哪一个是正确的?

()

A、静态初始化器是在构造函数之前加上static修饰符。

B、静态初始化器是对类自身进行初始化。

C、静态初始化器在同一个类中只能有一个。

D、静态初始化器是在其所属的类加载内存时由系统自动调用执行。

14、编译并运行下面的程序,运行结果为().

publicclassT1{

publicstaticvoidmain(String[]args){

T1a=newT1();

a.method(8);

a.method(1.2f);

}

voidmethod(floati){

System.out.println("float:

"+i);

}

voidmethod(longi){

System.out.println("long:

"+i);

}

}

A、程序有编译错误,因为两个method()方法必须定义为静态(static)的。

B、程序可以编译运行,输出结果为:

long:

8

float:

1.2

C、程序可以编译运行,输出结果为:

float:

1.2

long:

8

D、程序中定义的两个参数不同的method方法称为方法重栽。

15、编译并运行下面的程序,运行结果为().

publicclassA{

publicstaticvoidmain(String[]args){

Aa=newB();

a.test();

}

voidtest()  {

System.out.print("A");

}

}

classBextendsA{

voidtest(){

super.test();

System.out.println("B");

}

}

A、子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。

B、代码可以编译运行,并输出结果:

AB

C、代码可以编译运行,并输出结果:

A。

D、子类B定义了与父类A中同名的方法test,java中称为方法的重载

16、下面哪个说法正确()

A、如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字。

B、如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。

C、如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。

D、接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。

17、类的设计要求它的某个成员变量不能被外部类直接访问。

应该使用下面的哪些修饰符获得需要的访问控制?

  A、public

 B、nomodifier

  C、protected(权限仅次于public)

  D、private

18、哪些返回true?

[多选]

  Strings="hello";

  Stringt="hello";

  charc[]={'h','e','l','l','o'};

  A、s.equals(t);

  B、t.equals(c);

  C、s==t;

  D、t.equals(newString("hello"));

  E、t==c.

19、类Teacher和Student都是类Person的子类

  Personp;

  Teachert;

  Students;

  p,tandsareallnon-null.

  if(tinstanceofPerson){s=(Student)t;}

  这个语句导致的结果是什么?

  A、将构造一个Student对象。

  B、表达式合法。

  C、编译时非法。

 D、编译时合法而在运行时可能非法。

 

20、给出下面的代码:

  classPerson{

  Stringname,department;

  publicvoidprintValue(){

  System.out.println("nameis"+name);

  System.out.println("departmentis"+department);

  }

  }

  publicclassTeacherextendsPerson{

  intsalary;

  publicvoidprintValue(){

  //doingthesameasintheparentmethodprintValue()

  //includingprintthevalueofnameanddepartment.

  System.out.println("salaryis"+salary);

  }

  }

 下面的哪些表达式可以加入printValue()方法的"doingthesameas..."部分?

  A、printValue();

  B、this.printValue();

  C、person.printValue();

  D、super.printValue().

二、简答题:

(48分)

1、简答方法的OverLoading和Overriding区别。

(笔试题)

(1)OverLoading:

方法重载是指方法名相同,参数类型及参数个数不同的一组方法,在调用是根据传入参数不同调用同名的不同方法

(2)Overriding:

方法重写是指子类继承父类时,在子类中定义与父类返回值类型相同、方法名相同、参数列表相同,子类访问权限大于或等于父类,如果有异常,子类抛出的异常小于或等于父类的。

但是方法体不同的方法

2、简答Java实现动态多态的手段。

(1)多态:

相同的消息被不同的对象接受,产生不同的行为结果。

相同的消息是指同名方法调用。

(2)动态多态实现的方式:

通过抽象类或者是借口中定义的抽象方法,

然后由子类或者接口的实现类实现后,并使用兼容复制规则,实现子类或者实现类方法的动态调用

(1)定义抽象父类,在父类中定义抽象的方法;

父类被不同的子类继承时,子类重写父类定义的抽象方法;

(2)定义不同类共有方法的接口,在类实现时实现接口。

3、简答this和super的用法。

(1)this用在构造方法中第一条语句,形如this([参数列表])表示对本类其他构造方法的调用,用在非静态的成员方法中使用形如this。

成员名表示对本类成员的调用。

(2)super出现在子类构造方法的第一行,形如super.([参数列表])表示对付类构造方法的调用,在子类方法中形如super.成员名,表示对被子类覆盖的父类成员的调用

(1)this表示对本类成员和方法的引用

(2)super表示对父类方法的调用,必须在方法体的第一行

4、简答抽象类和接口的区别。

(1)抽象类处于类族中的顶层,提供

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1