【答案】《面向对象程序设计》(金陵科技学院)章节期末中国大学慕课答案_第1页
【答案】《面向对象程序设计》(金陵科技学院)章节期末中国大学慕课答案_第2页
【答案】《面向对象程序设计》(金陵科技学院)章节期末中国大学慕课答案_第3页
【答案】《面向对象程序设计》(金陵科技学院)章节期末中国大学慕课答案_第4页
【答案】《面向对象程序设计》(金陵科技学院)章节期末中国大学慕课答案_第5页
已阅读5页,还剩70页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章JAVA面向对象开发方法(JavaObjectOrientedDevelopmentMethod)第一章测试1.单选题:Eclipse是什么?()

选项:

A、是一种新的语言

B、是一种基于插件的通用的集成化软件开发环境

C、是仅用于Java程序设计的一套集成化软件开发环境

D、是一种Java应用软件

答案:【是一种基于插件的通用的集成化软件开发环境】2.单选题:编译一个定义了3个类和10个方法的Java源文件后,会产生的字节码文件个数和扩展名是什么?()

选项:

A、13个字节码文件,扩展名为.class

B、1个字节码文件,扩展名为.class

C、3个字节码文件,扩展名为.java

D、3个字节码文件,扩展名为.class

答案:【3个字节码文件,扩展名为.class】3.单选题:在创建Applet应用程序时,需要用户考虑问题是()。

选项:

A、窗口如何创建

B、绘制的图形在窗口中的位置

C、程序的框架

D、事件处理

答案:【绘制的图形在窗口中的位置】4.单选题:下列关于Application和Applet程序的说法中不正确的一项是()。

选项:

A、Application使用解释器java.exe

B、Application不使用独立的解释器

C、Applet在浏览器中运行

D、Applet必须继承Java的Applet类

答案:【Application不使用独立的解释器】5.单选题:编译JavaApplet源程序文件产生的字节码文件的扩展名为()。

选项:

A、java

B、class

C、html

D、exe

答案:【class】6.单选题:main方法是JavaApplication程序执行的入口点,关于main方法的方法头以下哪项是合法的()?

选项:

A、publicstaticvoidmain()

B、publicstaticvoidmain(Stringargs[])

C、publicstaticintmain(String[]arg)

D、publicvoidmain(Stringarg[])

答案:【publicstaticvoidmain(Stringargs[])】7.单选题:JavaApplication源程序的主类是指包含有()方法的类。

选项:

A、main方法

B、toString方法

C、init方法

D、actionPerfromed方法

答案:【main方法】8.单选题:下列关于虚拟机说法错误的是()。

选项:

A、虚拟机可以用软件实现

B、虚拟机不可以用硬件实现

C、字节码是虚拟机的机器码

D、虚拟机把代码程序与各操作系统和硬件分开

答案:【虚拟机不可以用硬件实现】9.单选题:下列选项中,不属于Java语言特点的一项是()。

选项:

A、分布式

B、安全性

C、编译执行

D、面向对象

答案:【编译执行】10.单选题:下列描述中,不正确的是()。

选项:

A、不支持多线程

B、一个Java源文件不允许有多个公共类

C、Java通过接口支持多重继承

D、Java程序分为Application和Applet两类

答案:【不支持多线程】11.单选题:Java程序的执行过程中用到一套JDK工具,其中javac.exe是指()。

选项:

A、Java文档生成器

B、Java解释器

C、Java编译器

D、Java类分解器

答案:【Java编译器】12.单选题:以public修饰的类如:publicclassCar{…}则Car()。

选项:

A、可被其它程序包中的类使用

B、仅能被本程序包中的类使用

C、不能被任意其它类使用

D、不能被其它类继承

答案:【可被其它程序包中的类使用】13.单选题:如何调用JAVA小程序?()

选项:

A、双击小程序文件即可执行

B、在命令行为方式下键入JAVA命令来调用

C、在Eclipse中键入JAVA命令来调用

D、打开HTML文件即可调用,或者利用appletviewer命令调用

答案:【打开HTML文件即可调用,或者利用appletviewer命令调用】14.单选题:在JavaApplet程序用户自定义的Applet子类中,常常重载()方法在Applet的界面中显示文字、图形和其它界面元素。

选项:

A、start()

B、stop()

C、init()

D、paint()

答案:【paint()】15.单选题:执行一个java程序“FirstApp”的方法是()。

选项:

A、运行:“javaFristApp.java”

B、运行:“javaFristApp”

C、运行“javacFristApp.class”

D、直接双击编译好的java目标码文件执行

答案:【运行:“javaFristApp”】16.单选题:以下的Java程序代码中,错误的行是()。

选项:

A、System.Out.Println(“天天好心情”);

B、/*天好心情!*/

C、publicstaticvoidmain(String[]args){}

D、publicclassFirstApp{}

答案:【System.Out.Println(“天天好心情”);】17.单选题:给定一个java源程序Test.java,在命令行中,使用下面()语句可以编译、运行该程序。

选项:

A、javacTest.java和javaTest

B、javacTest.java和javaTest.class

C、javaTest.java和javacTest

D、javaTest.java和javacTest.class

答案:【javacTest.java和javaTest】18.单选题:.class和.java文件的含义分别是()。

选项:

A、Java目标码文件和源文件

B、Java可执行文件和目标码文件

C、Java源文件和目标码文件

D、Java源文件和Java平台配置文件

答案:【Java目标码文件和源文件】19.单选题:小程序的生命周期包括哪些阶段?()

选项:

A、载入,运行,离开,返回,卸载,等阶段

B、载入,运行,函数阶段

C、运行阶段,停止阶段

D、下载,载入,运行阶段

答案:【载入,运行,离开,返回,卸载,等阶段】20.单选题:阅读下列代码,选出该代码段正确的文件名()。classA{voidmethod1(){System.out.println("Method1inclassA");}}publicclassB{voidmethod2(){System.out.println("Method2inclassB");}publicstaticvoidmain(String[]args){System.out.println("main()inclassB");}}

选项:

A、A.java

B、A.class

C、B.java

D、B.class

答案:【B.java】21.单选题:Java语言具有较好的安全性和可移植性及与平台无关等特性。

选项:

A、正确

B、错误

答案:【正确】22.单选题:Java语言的源程序不是编译型的,而是编译解释型的。

选项:

A、正确

B、错误

答案:【正确】23.单选题:Java程序中不区分大小写字母。

选项:

A、正确

B、错误

答案:【错误】24.单选题:机器不能直接识别字节码文件,它要经过JVM中的解释器边解释边执行。

选项:

A、正确

B、错误

答案:【正确】25.单选题:当前路径的标识是“.”。

选项:

A、正确

B、错误

答案:【正确】26.单选题:System类中的println()方法分行显示信息,而print()方法不分行显示信息。

选项:

A、正确

B、错误

答案:【正确】27.单选题:java命令不区分大小写,而javac命令区分大小写。

选项:

A、正确

B、错误

答案:【错误】28.单选题:printf()和format()方法使用指定格式字符串和参数,将格式化字符串写入到PrintStream类型的输出流(System.out对象)中。

选项:

A、正确

B、错误

答案:【正确】29.单选题:在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。

选项:

A、正确

B、错误

答案:【错误】第一章作业1.编译运行第一个JavaApplication程序,在屏幕上显示如下图形:**********请使用循环结构完成本题。

答案:【主要考查类的定义、主方法定义、循环控制结构和基本输出语句。publicclassStarTest{}publicstaticvoidmain(String[]args){}for(inti=0;i<4;i++){for(intj=i;j<4;j++){}}System.out.print("*");System.out.println();】2.编译运行第一个JavaApplet小程序,同样显示第一题中的图形。请使用循环结构完成本题。

答案:【主要考查小程序的书写形式、paint()方法的定义、循环控制结构、drawString()方法的使用和Html文件的书写形式。importjava.applet.Applet;importjava.awt.Graphics;publicclassStarTestAppletextendsApplet{}publicvoidpaint(Graphicsg){}for(inti=1;i<=4;i++){for(intj=0;j<=4-i;j++){}}g.drawString("*",10*j,10*i);HTML文件:】第二章JAVA程序设计基础(Javaprogrammingfoundation)第二章测试1.单选题:以下程序的运行结果是()。publicclassMine{publicstaticvoidmain(Stringargs[]){int[]ar=newint[5];for(inti=0;i<ar.length;i++)System.out.print(ar[i]);}}

选项:

A、00000

B、编译时错误:数组ar未初始化

C、null

D、运行时错误:IndexOutOfBoundesException

答案:【00000】2.单选题:以下对append函数的描述中,错误的是()。

选项:

A、append函数用于在已有的字符串末尾添加新的内容

B、StringBuffer类和StringBuilder类均提供append函数

C、append函数有多种形式,用于添加不同的内容

D、append函数仅能添加字符串型的对象

答案:【append函数仅能添加字符串型的对象】3.单选题:若Strings=“Hello”;Stringt=“Hello”;Stringc=newString(s);则下列哪个表达式返回false?()

选项:

A、s.equals(t);

B、t.equals(c);

C、s==c;

D、s==t;

答案:【s==c;】4.单选题:以下关于Java中数组长度的描述中,正确的是()。

选项:

A、数组的长度是可变的

B、数组的长度是固定的,是在运行期确定下来

C、数组的长度是固定的,是在设计期确定下来

D、组的长度是可变的,但最大长度在设计期就确定下来

答案:【数组的长度是固定的,是在运行期确定下来】5.单选题:Java程序中如何获得数组的长度()?

选项:

A、利用全局函数getArrayLen()

B、利用数组的getLength()函数

C、利用数组的length()函数

D、利用数组的length变量

答案:【利用数组的length变量】6.单选题:在Java中,存放字符串常量的对象属于()类对象。

选项:

A、Character

B、String

C、StringBuffer

D、Vector

答案:【String】7.单选题:Javadoc的注释文档中可以有哪些内容?()

选项:

A、文本,HTML标记,以“@”打头的文档标记

B、文本,HTML标记

C、文本,Java宏命令

D、文本,Javascript脚本语句

答案:【文本,HTML标记,以“@”打头的文档标记】8.单选题:以下几个命名方法,不符合Java命名规范的是()。

选项:

A、类的名称:MyClassName

B、变量的名称:myArray

C、常量的名称:PI_VALUE

D、成员函数的名称:GetName

答案:【成员函数的名称:GetName】9.单选题:在下面的代码中,break语句的作用是()。for(inti=0;i<10;i++)if(aData[i]==TargetData){FoundID=i;break;}

选项:

A、退出if程序块

B、退出此次循环,直接进入下一次循环

C、退出整个循环

D、退出整个函数

答案:【退出整个循环】10.单选题:下列哪个是合法的Java标识符?()

选项:

A、Tree&Glasses

B、1_FirstJavaApplet

C、_$theLastOne

D、273.5

答案:【_$theLastOne】11.单选题:Java的字符类型采用的是Unicode编码方案,每个Unicode码占用()个比特位。

选项:

A、8

B、16

C、32

D、64

答案:【16】12.单选题:Java用于返回字符串中第一个字符的方法为()。

选项:

A、charAt(1)

B、charAt(0)

C、indexof(1)

D、indexof(0)

答案:【charAt(0)】13.单选题:Java内部如何利用”+”号将字符串连接在一起?()

选项:

A、“+”号相当于append函数,在String对象的后面添加字符串

B、“+”号相当于append函数,在StringBuffer对象的后面添加字符串,因此只有StringBuffer对象能用“+”号连接符

C、Java在用“+”号进行字符串连接的时候,是新建一个StringBuffer对象,用它按序连接所有的字符串,最后再转回String对象

D、“+”号相当于append函数,在String对象的后面添加字符串,因此只有String对象才能用“+”号连接符

答案:【Java在用“+”号进行字符串连接的时候,是新建一个StringBuffer对象,用它按序连接所有的字符串,最后再转回String对象】14.单选题:给定一个Java程序的代码片断如下:Strings=“hello,world”;System.out.println(A);运行后,输出world,A处应填入()。

选项:

A、s.substring(s.indexOf(“w”),s.length())

B、s.substring(s.charAt(“w”),s.length())

C、s.substring(6,10)

D、s.substring(7,12)

答案:【s.substring(s.indexOf(“w”),s.length())】15.单选题:给定一个Java程序的代码片断如下,运行后,正确的输出结果是()。Strings=”Hello,world”;s.replace(‘,’,‘’);System.out.println(s);

选项:

A、Helloworld

B、Hello,world

C、HELLOWORLD

D、HELLO,WORLD

答案:【Hello,world】16.单选题:在Java语言中,以下()代码不会引起编译器错误。

选项:

A、float[]f1=newfloat[];

B、float[3]f2=newfloat[];

C、floatf3[]={1.0,2.0,3.0};

D、floatf4[]=newfloat[]{1.0f,2.0f,3.0f};

答案:【floatf4[]=newfloat[]{1.0f,2.0f,3.0f};】17.单选题:给定Java代码如下:要使这段代码能够编译成功,横线处可以填入()。publicintcount(charc,inti,doubled){return_____;}

选项:

A、c*i

B、c*d

C、(int)c*d

D、i*d

答案:【c*i】18.单选题:给定某Java程序片断,如下:inti=1;intj=i++;if((i>++j)&&(i++==j))i+=j;System.out.println(i);给程序运行后,i的输出结果是()。

选项:

A、1

B、2

C、3

D、4

答案:【2】19.单选题:给定Java代码片断,如下:inti=0,j=-1;switch(i){case0,1:j=1;case2:j=2;}System.out.print("j="+j);编译运行,正确的结果是()。

选项:

A、程序编译出错

B、j=1

C、j=2

D、j=0

答案:【程序编译出错】20.单选题:在Java中,下列()语句不能通过编译。

选项:

A、Strings=”john”+”was”+”here”;

B、Strings=”john+3”;

C、inta=3+5;

D、floatf=5+5.5;

答案:【floatf=5+5.5;】21.单选题:所有的变量在使用前都必须进行初始化。

选项:

A、正确

B、错误

答案:【错误】22.单选题:Stringstr="abcdefghi";charchr=str.charAt(9);

选项:

A、正确

B、错误

答案:【错误】23.单选题:char[]chrArray={'a','b','c','d','e','f','g'};charchr=chrArray[6];

选项:

A、正确

B、错误

答案:【正确】24.单选题:shortshortValue=220;bytebyteValue=shortValue;

选项:

A、正确

B、错误

答案:【错误】25.单选题:说明或声明数组时不分配内存大小,创建数组时分配内存大小。

选项:

A、正确

B、错误

答案:【正确】第二章作业1.编写一个JavaApplication程序,输出区间[200,300]上的所有素数,将其用数组prime[]保存,并以每10个一行的形式显示运行结果。

答案:【int[]prime=newint[100];for(inti=200;i<=300;i++)for(j=2;j<code=""><>if(i%j==0)break;if(j==i)prime[n++]=i;for(inti=0;prime[i]!=0;i++)System.out.print(prime[i]+"");if((i+1)%10==0)】2.使用String类的compareTo(Strings)方法,对以下字符串排序:“melon”,“apple”,“pear”,“banana”,显示输出排序结果。

答案:【String[]str={"melon","apple","pear","banana"};for(inti=0;i0){Stringstr1=str[i];str[i]=str[j];str[j]=str1;}}for(inti=0;i】第三章类和对象(ClassandObject)第三章测试1.单选题:给定Java代码如下,编译运行,结果是()。classTest{inti;publicstaticvoidmain(Stringargs[]){System.out.println("i="+i);}}

选项:

A、编译错误

B、运行时出现异常

C、正常运行,输出i=-1

D、正确运行,输出i=0

答案:【编译错误】2.单选题:在Java中,在方法前使用()关键字,可以表示此方法为类方法,无需创建对象即可访问。

选项:

A、void

B、final

C、public

D、static

答案:【static】3.单选题:为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。

选项:

A、staticvoidmethod()

B、publicvoidmethod()

C、finalvoidmethod()

D、abstractvoidmethod()

答案:【staticvoidmethod()】4.单选题:对于构造函数,下列叙述错误的是()。

选项:

A、构造函数是类的一种特殊函数,它的方法名必须与类名相同

B、构造函数的返回类型只能是void型

C、构造函数的主要作用是完成对类的对象的初始化工作

D、一般在创建新对象时,系统会自动调用构造函数

答案:【构造函数的返回类型只能是void型】5.单选题:在Java中,在包com.db下定义了一个类,要让包com.util下的所有类都可以访问这个类,这个类必须定义为()。

选项:

A、protected

B、private

C、public

D、friendly

答案:【public】6.单选题:在JAVA中,com包中某类的方法使用下列()访问修饰符修饰后,可以被com.db包中的子类访问,但不能被com.db中其他类访问。

选项:

A、private

B、protected

C、public

D、friendly

答案:【protected】7.单选题:Java中,类Object位于()包中。

选项:

A、java.lang

B、java.util

C、java.sql

D、java.io

答案:【java.lang】8.单选题:给定Java代码如下,d取值范围是()。doubled=Math.random();

选项:

A、d>=1.0

B、d>=0.0,并且d<1.0

C、d>=0.0,并且d

D、d>=1.0,并且d

答案:【d>=0.0,并且d<1.0】9.单选题:给定一个Java程序的方法结构,如下:publicIntegerchange(Strings){()//代码;}

选项:

A、returnInteger(s);

B、returns;

C、returns.getInteger();

D、returnInteger.valueOf(s);

答案:【returnInteger.valueOf(s);】10.单选题:给定Java代码片段,如下:Integera=newInteger(3);Integerb=newInteger(3);System.out.println(a==b);运行后,这段代码将输出()。

选项:

A、true

B、false

C、0

D、1

答案:【false】11.单选题:在Java中,对象在何种状态下会被回收?()

选项:

A、当没有引用变量再指向该对象时

B、当对象关系的引用变量消失时

C、当没有任何程序再访问一个对象或对象的成员变量时

D、当对象的所有成员函数都执行一遍以后

答案:【当没有引用变量再指向该对象时】12.单选题:设有下面的一个类定义:classAA{staticvoidshow(){System.out.println(“我喜欢Java!”);}}classBB{voidshow(){System.out.println(“我喜欢C++!”);}}若已经使用AA类创建对象a和BB类创建对象b,则下面哪一个方法调用是正确的?()

选项:

A、a.show()b.show()

B、AA.show()BB.show()

C、AA.show()b.show()

D、a.show()BB.show()

答案:【AA.show()b.show()】13.单选题:给定Java程序Test.java如下,编译运行,结果是()。packagecom;publicclassTest{protectedvoidtalk(){System.out.print("talk");}}给定com.util包下的测试类Test2如下:packagecom.util;importcom.*;publicclassTest2{publicstaticvoidmain(String[]args){newTest().talk();}}

选项:

A、输出字符串:talk

B、输出字符串:talktalk

C、编译错误:在com.util.Test2中无法访问方法talk()

D、编译错误:com.Test无法在包外访问

答案:【编译错误:在com.util.Test2中无法访问方法talk()】14.单选题:给定Java程序Test.java如下:packagecom;publicclassTest{publicvoidtalk(){}protectedvoidwalk(){}privatevoidclimb(){}voidjump(){}}给定Test的子类Test2,代码如下:packagecom;publicclassTest2extendsTest{publicstaticvoidmain(String[]args){Test2tt=newTest2();//A}}不可以在Test2的A处加入的代码是()。

选项:

A、tt.talk();

B、tt.walk();

C、tt.climb();

D、tt.jump();

答案:【tt.climb();】15.单选题:设有下面两个赋值语句:a=Integer.parseInt(“1024”);b=Integer.valueOf(“1024”).intValue();下述说法正确的是()。

选项:

A、a是整数类型变量,b是整数类对象。

B、a是整数类对象,b是整数类型变量。

C、a和b都是整数类对象并且它们的值相等。

D、a和b都是整数类型变量并且它们的值相等。

答案:【a和b都是整数类型变量并且它们的值相等。】16.单选题:定义一个Java程序的方法结构如下:以下方法体实现语句不正确的是()。publicStringchange(inti){}

选项:

A、returnnewString(i);

B、returnString.valueOf(i);

C、returni+“”;

D、returnInteger.toString(i);

答案:【returnnewString(i);】17.单选题:在Java中,包有多种用途,但不包含()。

选项:

A、将类组合成较小的单元,便于使用

B、有助于避免命名冲突

C、有助于提高运行效率

D、允许在更广的范围内保护类、数据和方法

答案:【有助于提高运行效率】18.单选题:以下哪一种方法不能访问一个包中的公开类?()

选项:

A、用“import包名.*”导入包中的所有类

B、用“import包名.类名”导入包中的某个类

C、用“*”号来匹配带有某个关键字的类

D、用类的全名(包名.类名)访问

答案:【用“*”号来匹配带有某个关键字的类】19.单选题:类是一种类型,也是对象的模板。

选项:

A、正确

B、错误

答案:【正确】20.单选题:实例方法中不能引用类变量。

选项:

A、正确

B、错误

答案:【错误】21.单选题:创建对象时系统将调用适当的构造方法给对象初始化。

选项:

A、正确

B、错误

答案:【正确】22.单选题:使用运算符new创建对象时,赋给对象的值实际上是一个引用值。

选项:

A、正确

B、错误

答案:【正确】23.单选题:对象可作方法参数,对象数组不能作方法参数。

选项:

A、正确

B、错误

答案:【错误】24.单选题:Java语言会自动回收内存中的垃圾。

选项:

A、正确

B、错误

答案:【正确】第三章作业1.编写程序,首先创建一个类Circle,添加私有静态属性r(成员变量),并定义一个常量PI=3.142;其次,在类Circle中添加构造方法,set_get方法,以及分别计算周长和面积的方法;最后,编写主类TestCircle,利用类Circle输出r=2时圆的周长和面积。

答案:【privatestaticdoubler;staticfinaldoublePI=3.142;publicCircle(doubler){setR(r);}publicdoublegetR(){returnr;}publicvoidsetR(doubler){Circle.r=r;}publicdoubleperimeter(doubler){return2*PI*r;}publicdoublearea(doubler){returnPI*r*r;}classTestCircle{publicstaticvoidmain(String[]args)Circlec=newCircle(2);System.out.println("Thecircle'sradiusis"+c.getR()+".Perimeteris"+c.perimeter(c.getR())+".Areais"+c.area(c.getR()));】2.以下为一个Java的完整程序,它定义了一个类Car,并在程序中创建了一个该类的对象demoCar,调用该对象的set_number方法设置车号属性为3388,调用该对象show_number方法输出车号。(请将答案依次分行书写,注意不要忘记;)//Car.javapackageedu.jit.pac1;publicclassCar{privateintcar_number;publicvoidset_number(intcar_num){//为成员变量car_number赋值}publicvoidshow_number(){System.out.println(“MycarNo.is:”+car_number);}}//CarDemo.javapackageedu.jit.pac2;//引入Car类classCarDemo{publicstaticvoidmain(Stringargs[]){//创建Car类对象demoCar//设置car_number为3388//调用成员方法显示车牌号}}

答案:【car_number=car_num;importedu.jit.pac1.Car;CardemoCar=newCar();demoCar.set_number(3388);demoCar.show_number();】第四章继承与多态(Inheritanceandpolymorphism)第四章测试1.单选题:设有如下类定义:classBaseWidget{Stringname="BaseWidget";voidspeak(){System.out.println("Iama"+name);}}classTypeAWidgetextendsBaseWidget{TypeAWidget(){name="TypeA";}}以下哪段代码将正确编译和执行()。

选项:

A、Objecta=newBaseWidget();a.speak();

B、BaseWidgetb=newTypeAWidget();b.speak()

C、TypeAWidgetc=newBaseWidget();c.speak();

D、以上都不对

答案:【BaseWidgetb=newTypeAWidget();b.speak()】2.单选题:在Java中,下列()类不能派生出子类。

选项:

A、publicclassMyClass{}

B、classMyClass{}

C、abstractclassMyClass{}

D、finalclassMyClass{}

答案:【finalclassMyClass{}】3.单选题:分析下面的Java代码:编译运行,结果是()。classA{protectedintgetNumber(inta){returna+1;}}classBextendsA{publicintgetNumber(inta){returna+2;}publicstaticvoidmain(Stringargs[]){Aa=newB();System.out.println(a.getNumber(0));}}

选项:

A、输出1

B、输出2

C、publicintgetNumber(inta)处导致编译错误

D、Aa=newB();处导致编译错误

答案:【输出2】4.单选题:给定Java代码如下,关于super的用法,以下描述正确的是()。classCextendsB{publicC(){super();}}

选项:

A、用来调用类B中定义的super()方法

B、用来调用类C中定义的super()方法

C、用来调用类B的无参构造方法

D、用来调用类B中第一个出现的构造方法

答案:【用来调用类B的无参构造方法】5.单选题:已知:classC{publicC(inti){}}下面哪段代码是对类C构造方法的重载()。

选项:

A、C(inti){}

B、publicObjectC(byteb){}

C、publicC(){}

D、privateC(inti,intj){}

答案:【publicC(){}】6.单选题:关于重载和重写的叙述正确的是()。

选项:

A、重载是多态的一种,而重写不是

B、重载是子类中定义的方法和父类中某个方法相同

C、重写是一个类中多个同名的方法,并且方法的参数不同

D、重写方法时不允许降低方法的访问权限

答案:【重写方法时不允许降低方法的访问权限】7.单选题:下面()Java关键字表示一个对象或变量的值不能够被修改。

选项:

A、static

B、abstract

C、finally

D、final

答案:【final】8.单选题:一个Java源文件Child.java,代码如下:运行后正确的输出结果是()。classParent{Parent(){System.out.println(“parent”);}}publicclassChildextendsParent{Child(Strings){System.out.println(s);}publicstaticvoidmain(String[]args){Childchild=newChild(“child”);}}

选项:

A、child

B、childparent

C、parentchild

D、编译错误

答案:【parentchild】9.单选题:在Java中,关键字()用来调父类的构造方法。

选项:

A、super

B、this

C、extends

D、abstract

答案:【super】10.单选题:如何定义一个不能有子类的类Key()。

选项:

A、classKey{}

B、finalclassKey{}

C、publicclassKey{}

D、classKey{finalinti;}

答案:【finalclassKey{}】11.单选题:哪个选项可以做为以下方法的覆盖方法()。publicvoidadd(inta){…}

选项:

A、publicvoidadd(intb){…}

B、voidadd(inta){…}

C、publicintadd(inta){…}

D、publicvoidadd(floata){…}

答案:【publicvoidadd(intb){…}】12.单选题:在子类构造方法的哪个地方可以调用超类的构造方法()。

选项:

A、任何地方

B、构造方法的第一条语句

C、构造方法的最后一条语句

D、不能在子类构造方法中调用超类的构造方法

答案:【构造方法的第一条语句】13.单选题:以下代码运行结果是()。classBase{}classSubextendsBase{}classCEx{publicstaticvoidmain(Stringargv[]){Baseb=newBase();Subs=(Sub)b;}}

选项:

A、编译通过

B、编译错误

C、运行异常

D、以上都不对

答案:【运行异常】14.单选题:给定如下Java代码,以下()修饰符可以填入下划线处。classParent{protectedvoideat(){}}classChildextendsParent{_________voideat(){}}

选项:

A、final

B、private

C、static

D、public

答案:【public】15.单选题:对于子类的构造函数说明,下列叙述中不正确的是()。

选项:

A、在同一个类中定义的重载构造函数可以相互调用。

B、子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。

C、在创建子类的对象时,将先执行父类的无参构造函数,然后再执行自己的构造函数。

D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。

答案:【子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。】16.单选题:设有下面的两个类定义:classAA{voidshow(){System.out.println(“我喜欢Java!”);}}classBBextendsAA{voidshow(){System.out.println(“我喜欢C++!”);}}则顺序执行如下语句后输出结果为:()AAa=newAA();a.show();AAb=newBB();b.show();

选项:

A、我喜欢Java!我喜欢C++!

B、我喜欢C++!我喜欢Java!

C、我喜欢Java!我喜欢Java!

D、我喜欢C++!我喜欢C++!

答案:【我喜欢Java!我喜欢C++!】17.单选题:下列程序运行结果是()。classBase{Base(){inti=100;System.out.print(i);}}publicclassPriextendsBase{staticinti=200;publicstaticvoidmain(Stringargv[]){Prip=newPri();System.out.print(i);}}

选项:

A、编译错误

B、200

C、100200

D、100

答案:【100200】18.单选题:子类可以继承父类所有的成员变量及成员函数。

选项:

A、正确

B、错误

答案:【错误】19.单选题:Java类中不能存在同名的两个成员函数。

选项:

A、正确

B、错误

答案:【错误】20.单选题:静态初始化器是在其所属的类加载内存时由系统自动调用执行的方法。

选项:

A、正确

B、错误

答案:【错误】21.单选题:子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数目。

选项:

A、正确

B、错误

答案:【错误】22.单选题:Java语言中,所创建的子类都应有一个父类。

选项:

A、正确

B、错误

答案:【正确】23.单选题:调用this或super构造方法的语句必须放在第一条语句。

选项:

A、正确

B、错误

答案:【正确】第四章作业1.编写一个Java应用程序,该程序包括3个类:类人猿类、People类和主类E。要求:1)类人猿中有私有成员:status(表示身份信息),构造方法:类人猿(Stringstatus),为身份信息初始化;有个publicvoidspeak()方法,在speak方法中输出“祖先说:咿咿呀呀......”的信息。2)People类是类人猿的子类,在People类中包含构造方法People(),其中调用父类构造方法,传递身份信息为“人类”;重写方法speak(),在speak方法中输出“人类说:小样的,不错嘛!”的信息;在People类中新增方法voidthink(),在think方法中输出“别说话!认真思考!”。3)在主类E的main方法中创建类人猿与People类的对象类测试这两个类的功能。

答案:【privateStringstatus;类人猿(Stringstatus){this.status=status;}publicvoidspeak(){System.out.println(status+"说:咿咿呀呀......");}classPeopleextends类人猿People(){super("人类");}publicvoidspeak(){System.out.println(getStatus()+"说:小样的,不错嘛!");}voidthink(){System.out.println("别说话!认真思考!");}classE{publicstaticvoidmain(String[]args){类人猿yuan=new类人猿("祖先");yuan.speak();Peoplep=newPeople();p.speak();p.think();}}//类人猿类中添加getStatus()方法,访问父类私有成员publicStringgetStatus(){returnstatus;}】2.编写一个类A,该类创建的对象可以调用方法f输出小写的英文字母表。然后再编写一个A类的子类B,要求子类B必须继承A类的方法f(不允许重写),子类B创建的对象不仅可以调用方法f输出小写的英文字母表,而且可以调用子类新增的方法g输出大写的英文字母表。最后编写主类C,在主类的main方法中利用类型的多态定义A类引用,既输出小写字母,又输出大写字母。

答案:【classA{voidf(){System.out.println("A输出小写的英文字母表:");charc;for(c='a';c<='z';c++)System.out.print(""+c);System.out.println();}}classBextendsA{voidg(){charc;System.out.println("B输出大写的英文字母表:");for(c='A';c<='Z';c++)System.out.print(""+c);System.out.println();}}classC{publicstaticvoidmain(Stringargs[]){Aa=newB();a.f();Bb=(B)a;b.g();}}】第五章JAVA的抽象类和接口(AbstractclassandinterfaceofJava)第五章测试1.单选题:在Java中,如果父类中的某些方法不包含逻辑,并且需要有子类重写,应该使用()关键字来声明父类的这些方法。

选项:

A、final

B、static

C、abstract

D、void

答案:【abstract】2.单选题:在Java中,下面关于抽象类的描述正确的是()。

选项:

A、抽象类可以被实例化

B、如果一个类中有一个方法被声明为抽象的,那么这个类必须是抽象类

C、抽象类中的方法必须都是抽象的

D、如果一个类中没有抽象方法,那么这个类一定不是抽象类

答案:【如果一个类中有一个方法被声明为抽象的,那么这个类必须是抽象类】3.单选题:在Java中,使用接口弥补了Java()的缺点。

选项:

A、一个父类只能有一个子类

B、只能单重继承

C、同名类会引发冲突

D、不能隐藏复杂实现细节

答案:【只能单重继承】4.单选题:在Java中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是()。

选项:

A、interfaceAextendsB,C

B、interfaceAimplementsB,C

C、classAimplementsB,C

D、classAimplementsB,implementsC

答案:【classAimplementsB,C】5.单选题:在Java接口中,下列选项里有效的方法声明是()。

选项:

A、publicvoidaMethod();

B、aMethod();

C、staticvoidaMethod();

D、protectedvoidaMethod();

答案:【publicvoidaMethod();】6.单选题:下面的是关于类及其修饰符的一些描述,错误的是()。

选项:

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

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

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

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

答案:【final类不但可以用来派生子类,也可以用来创建final类的对象】7.单选题:在使用interface声明一个接口时,只可以使用()修饰符修饰该接口。

选项:

A、private

B、protected

C、privateprotected

D、public

答案:【public】8.单选题:下列选项中正确的是()。

选项:

A、允许接口中没有抽象方法

B、一个类只能实现一个接口

C、如果一个抽象类实现某个接口,则必须重写接口中所有抽象方法

D、如果一个非抽象类实现某个接口,那么它可以只重写接口中的部分方法

答案:【允许接口中没有抽象方法】9.单选题:以下接口中的方法声明错误的是()。

选项:

A、publicvoidfun();

B、publicabstractstaticvoidfun();

C、intfun();

D、abstractfloatfun();

答案:【publicabstractstaticvoidfun();】10.单选题:下列程序:interfaceInt{intX=100;intfun();}classImpIntimplementsInt{(代码)}其中(代码)处应添加的语句为()。

选项:

A、publicfloatfun(){return3.5;}

B、intfun(){return200;}

C、publicabstractintfun();

D、publicintfun(){return100+X;}

答案:【publicintfun(){return100+X;}】11.单选题:一个类可以实现多个接口,接口可以实现“多重继承”。

选项:

A、正确

B、错误

答案:【正确】12.单选题:实现接口的类不能是抽象类。

选项:

A、正确

B、错误

答案:【错误】13.单选题:Java语言不允许同时继承一个类并实现一个接口。

选项:

A、正确

B、错误

答案:【错误】14.单选题:抽象方法是一种只有说明而无具体实现的方法。

选项:

A、正确

B、错误

答案:【正确】15.单选题:接口中可以包含非抽象的方法,比如:构造方法。

选项:

A、正确

B、错误

答案:【错误】第五章作业1.根据如下UML类图设计一个图书接口、Java书类、Java打折书类和主测试类。根据“开-闭原则”要求既不改变原接口和Java书的名称,又可以新增价格打七折优惠功能;定义测试类Test,输出显示书名、原书价和打折后价格。

答案:【定义IBook图书接口,包含缺省访问权限的两个方法:getName()和getPrice(),如图定义所示:定义实现IBook接口的类JavaBook,包含私有的属性name和price,构造方法和get-set方法,代码如图所示:定义JavaBook的子类JavaDiscountBook包含自己的构造方法,及获取打折价格的方法getDiscountPrice()和获取原价的方法getOrigianPrice(),代码如图所示:定义主测试类,包含主方法,创建Java打折图书对象,并输出书名、原价和打折价。publicclassTest{publicstaticvoidmain(String[]args){JavaDiscountBookjavabook=newJavaDiscountBook("Java教程",50.0);System.out.println("书名:"+javabook.getName()+"原价:"+javabook.getOrigianPrice()+"打折价:"+javabook.getDiscountPrice());}}】2.假设有一个豆浆店,豆浆的制作流程包括选择原料、添加调料(可选)、浸泡和打碎几个步骤。要求实现以下四个类:1)父类SoyMilk定义了保护级的调料属性condiment、公开级的模板方法make(),包含四个步骤的基本实现,其中选择原料select()、浸泡soak()和打碎beat()是具体实现方法,而添加调料addCondiments()是抽象方法,需要在子类中实现,钩子方法hookCandiments()确定是否需要调用添加调料方法,所有方法均为保护级。2)SoyMilk类包含两个子类:花生豆浆PeanutSoyMilk类和纯豆浆PureSoyMilk类。PeanutSoyMilk子类需包含自己的带参构造方法,初始化condiment属性,并实现addCondiments()抽象方法。3)PureSoyMilk子类重写钩子方法hookCandiments()、浸泡soak()、打碎beat()方法和addCondiments()抽象方法(方法体可为空)。4)定义主测试类TestSoyMilk,用运行时多态的形式分别创建花生豆浆类和纯豆浆类的对象,再分别调用模板方法,显示两种豆浆不同的制作过程。具体运行结果如图所示。

答案:【豆浆类实现:花生豆浆子类实现:纯豆浆实现:主测试类实现:】第六章JAVA异常处理(Javaexceptionhandling)第六章测验1.单选题:给定Java代码,如下运行时,会产生()类型的异常。Strings=null;s.concat("abc");

选项:

A、ArithmeticException

B、NullPointerException

C、IOException

D、EOFException

答案:【NullPointerException】2.单选题:以下程序执行的结果是()。int[]myArray=newint[3];try{for(inti=0;i<=myArray.length;i++){myArray[i]=i*3;System.out.println("数组的第"+i+"个元素的值是:"+myArray[i]);System.out.println("被0除错误。"+12/0);}}catch(ArrayIndexOutOfBoundsExceptione){System.out.println("数组下标越界。");}catch(RuntimeExceptione){System.out.println("程序出现异常。");}

选项:

A、程序正常执行结束

B、程序执行,屏幕出现“程序出现异常。”

C、程序执行,屏幕出现“程序出现算术异常。”

D、程序执行,屏幕出现“数组下标越界。”

答案:【程序执行,屏幕出现“程序出现异常。”】3.单选题:如果catch块中包括多个异常类,这些异常类的匹配原则是什么?()

选项:

A、按try块中程序执行的顺序,寻找最通用的异常类

B、按try块中程序执行的顺序,寻找能够最精确匹配的类

C、按catch块中异常类的排列顺序,寻找第一个能够匹配

D、在catch块中寻找能够最精确匹配的类

答案:【按catch块中异常类的排列顺序,寻找第一个能够匹配】4.单选题:以下异常中,不属于RuntimeException的是()。

选项:

A、ArrayIndexOutOfBoundsException数组下标越界异常

B、NullPointerException使用未初始化的引用变量

C、ArithmeticException算术异常

D、IllegalAccessException没有足够的权限访问其他类的成员

答案:【IllegalAccessException没有足够的权限访问其他类的成员】5.单选题:在编写异常处理的Java程序中,每个catch语句块都应该与()语句块对应,使得用该语句块来启动Java的异常处理机制。

选项:

A、if–else

B、switch

C、try

D、throw

答案:【try】6.单选题:Java中,下面捕获异常的语句不正确的是()。

选项:

A、try{……}finally{……}

B、try{……}catch(Exceptionex){……}

C、try{try{……}}catch(Exceptionex){……}

D、try{try{……}finally{……}}catch(Exceptionex){……}

答案:【try{try{……}}catch(Exceptionex){……}】7.单选题:给定一段Java代码,如下:运行后,输出结果将是()。publicclassTest{publicstaticvoidmain(Stringargs[]){inta[]={0,1,2,3,4};intsum=0;try{for(inti=1;i<6;i++)sum=sum+a[i];System.out.println("sum="+sum);}catch(ArrayIndexOutOfBoundsExceptione){System.out.println("数组越界");}finally{System.out.println("程序结束");}}}

选项:

A、sum=10程序结束

B、sum=10

C、数组越界程序结束

D、数组越界

答案:【数组越界程序结束】8.单选题:关于Java的异常处理,以下说法正确的是()。

选项:

A、任何能引发Error类异常的语句必须封装在try块中

B、任何能引发Exception类异常的语句必须封装在try块中

C、任何能引发RuntimeException类异常的语句必须封装在try块中

D、正常情况下,程序无法捕捉Error类的异常

答案:【正常情况下,程序无法捕捉Error类的异常】9.单选题:在Java的异常处理中,能单独与finally语句一起使用的块是()。

选项:

A、try

B、catch

C、throw

D、throws

答案:【try】10.单选题:在异常处理中,如释放资源、关闭文件、关闭数据库等由()来完成。

选项:

A、try子句

B、catch子句

C、finally子句

D、throw子句

答案:【finally子句】11.单选题:()类是所有异常和错误类的父类。

选项:

A、Throwable

B、Error

C、Exception

D、AWTError

答案:【Throwable】12.单选题:下列代码中给出正确的在方法体内抛出异常的是()。

选项:

A、newthrowException("");

B、thrownewException("");

C、throwsIOException();

D、throwsIOException;

答案:【thrownewException("");】13.单选题:给定Java代码,如下,编译运行后,结果是()。publicclassTest{staticStrings;publicstaticvoidmain(Stringargs[]){charc=s.charAt(0);System.out.println(c);}}

选项:

A、编译错误

B、运行期异常,异常类型为NullPointerException

C、运行期异常,异常类型为ArithmeticException

D、正确运行,但无输出内容

答案:【运行期异常,异常类型为NullPointerException】14.单选题:若父类中的方法声明了throws异常,则子类Override时一定也要throws异常。

选项:

A、正确

B、错误

答案:【错误】15.单选题:在方法的声明后面用关键字throw来声明该方法会抛出异常。

选项:

A、正确

B、错误

答案:【错误】16.单选题:Exception是Throwable的父类。

选项:

A、正确

B、错误

答案:【错误】17.单选题:catch多个异常时,子类异常要排在父类异常的后面。

选项:

A、正确

B、错误

答案:【错误】18.单选题:finally语句是指没有异常出现时要执行的语句。

选项:

A、正确

B、错误

答案:【错误】19.单选题:如果有return语句,finally语句应不会执行。

选项:

A、正确

B、错误

答案:【错误】20.单选题:逻辑错可以由编译器发现。

选项:

A、正确

B、错误

答案:【错误】21.单选题:抛出异常,使用关键字throw。

选项:

A、正确

B、错误

答案:【正确】22.单选题:用户自定义异常类继承自Exception类或某个Exception类的子类。

选项:

A、正确

B、错误

答案:【正确】23.单选题:程序中的错误通常可以分成三大类:语法错、运行错、逻辑错。

选项:

A、正确

B、错误

答案:【正确】24.单选题:语法错可以由编译器发现。

选项:

A、正确

B、错误

答案:【正确】25.单选题:运行时错可以由try-catch方式进行处理。

选项:

A、正确

B、错误

答案:【正确】26.单选题:捕获异常,使用关键字catch。

选项:

A、正确

B、错误

答案:【正确】27.单选题:Error是Throwable的子类。

选项:

A、正确

B、错误

答案:【正确】28.单选题:RuntimeException及其子类,可以不明确处理。

选项:

A、正确

B、错误

答案:【正确】29.单选题:非RuntimeException及其子类,必须明确处理。

选项:

A、正确

B、错误

答案:【正确】30.自定义异常,数值不能为负数。(注意:字母大小写、符号中西文必需和标准答案严格一致,不要有多余空格!建议在IDE环境中运行通过后,再将答案粘贴过来。)publicclassNoScoreExceptionextendsRuntimeException{publicNoScoreException(){super();}publicNoScoreException(Stringmessage){super(message);}}publicclassStudent{privateStringname;privateintscore;publicStudent(){super();}publicStudent(Stringname,intscore){setName(name);setScore(score);}publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}publicintgetScore(){returnscore;}publicvoidsetScore(intscore){//判断如果score为负数xxx,就抛出NoScoreException,异常信息为:分数不能为负数:xxxif(score<0){;}this.score=score;}}

答案:【thrownewNoScoreException("分数不能为负数:"+score)/thrownewNoScoreException(“分数不能为负数:”+score)/thrownewNoScoreException("分数不能为负数:"+score)/thrownewNoScoreException("分数不能为负数:"+score);/thrownewNoScoreException(“分数不能为负数:”+score);/thrownewNoScoreException("分数不能为负数:"+score);】31.写出以下程序的运行结果。注意:必需和系统运行结果完全一致,包括空格、换行和中西文标点符号。建议在IDE环境中运行通过后,再将答案粘贴过来。classDemo{publicstaticvoidfunc()throwsException{try{thrownewException();}finally{System.out.print("B");}}publicstaticvoidmain(String[]args){try{func();System.out.print("A");}catch(Exceptione){System.out.print("C");}System.out.print("D");}}

答案:【BCD】32.2、写出以下程序的运行结果。注意:必需和系统运行结果完全一致,包括空格、换行和中西文标点符号。建议在IDE环境中运行通过后,再将答案粘贴过来。classTest{publicstaticStringoutput="";publicstaticvoidfoo(inti){try{if(i==1)thrownewException();output+="1";}catch(Exceptione){output+="2";}finally{output+="3";}output+="4";}publicstaticvoidmain(Stringargs[]){foo(0);System.out.println(output);foo(1);System.out.println(output);}}

答案:【134134234】33.3、写出以下程序的运行结果。注意:必需和系统运行结果完全一致,包括空格、换行和中西文标点符号。建议在IDE环境中运行通过后,再将答案粘贴过来。publicclassReturnExceptionDemo{staticvoidmethodA(){try{System.out.println("进入方法A");thrownewRuntimeExcep

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论