您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > linux/Unix相关 > 面向对象技术Java 期末复习试卷(三)
期末复习试卷(三)一、单项选择题1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源文件名是()A.teststudent.javaB.teststudent.classC.TestStudent.javaD.TestStudent.class正确答案:C解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(public),该java文件的名字要与公共类的一致。2、关于下面的代码,哪个描述是正确的?publicclassTest{publicstaticvoidmain(String[]args){Integern1=newInteger(3);Objectn2=newInteger(4);System.out.println(n1.compareTo(n2));}}A.可以编译通过,可以运行,并得到预期结果。B.可以编译通过,可以运行,但不能得到预期结果。C.可以编译通过,但又运行错误。D.有编译错误。正确答案:D解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值,提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parseInt()方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(To),T是泛型,对于Integer类,T被替换为Integer,如下图:因此,Integer类中compareTo()方法的定义如下:因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer:System.out.println(n1.compareTo(n2));正确写法如下:System.out.println(n1.compareTo((Integer)n2));类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。3、下面哪种类型不是引用数据类型?()A.数组B.charC.StringD.Object正确答案:B解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种:布尔类型:boolean字符类型:char整数类型:byte,short,int,long浮点类型:float,double引用数据类型包括类、接口、抽象类、数组(本质上是类),引用类型可以提供功能。注意:String是一个类,所以可以使用Strings=newString(bistu)的方式创建对象;数组也是一个类,所以需要用new创建对象。4、类Test要定义一个无参数、无返回值的方法method,并能够通过Test.method()的方式调用method方法,则method方法的定义形式为()。A.publicstaticvoidmethod()B.publicvoidmethod()C.publicfinalvoidmethod()D.publicabstractvoidmethod()正确答案:A解析:静态方法(也叫类方法)可以不创建对象,而直接通过类名调用。5、下列关于接口说法正确的是()。A.抽象类中的方法不全都是抽象的,因此可以创建对象。B.接口的引用既可以调用实现类重写的接口的方法,也可以调用实现类新增的方法。C.接口的实现类可以实现接口的部分方法。D.接口的方法都是抽象的,因此不可以创建对象。正确答案:D解析:选项A的前半句是对的,后半句错了。选项B前半句是对的,后半句不对。示例如下:publicinterfaceGeometricObject{publicdoublegetArea();}publicclassCircleimplementsGeometricObject{publicdoublegetArea(){.….}publicdoublegetPerimeter(){……}}publicTestCircle{publicstaticvoidmain(String[]args){GeometricObjectc=newCircle();c.getArea();//访问实现类覆盖接口的方法可以c.getPerimeter()//错误:不可以访问实现类新增的方法}}选项C错误,实现类必须实现接口的所有的抽象的方法。6、将类的成员方法的访问权限设置为默认的,则该成员方法能被()。A.同一包中的类访问B.其他包中的类访问C.所有的类访问D.所有的类的子类访问正确答案:A解析:注意本题可以继续扩展,例如把访问权限换成public/private/protected。7、下列哪个是Java应用程序主类中正确的main方法声明?()A.publicvoidmain(String[]args)B.staticvoidmain(String[]ar)C.publicstaticvoidMain(Stringa[])D.publicstaticvoidmain(Stringargs[])正确答案:D8、有一段java应用程序,其中包含一个公共类,名字为Cat,那么保存它的源文件名是()A.Cat.javaB.Cat.classC.CatD.都对正确答案:A与第1个选择题类似。9、下列哪个是JDK提供的编译器?()A.java.exeB.javac.exeC.javap.exeD.javaw.exe正确答案:B10、某个源文件如下:publicclassTestPerson{}classPerson{}classStudentextendsPerson{}那么保存它的源文件名是()A.TestPerson.javaB.Person.javaC.Student.javaD.TestPerson.class正确答案:A参考第1、8题。11、以下定义一位数组的语句中,正确的是()A.inta[5];B.inta[]=new[5];C.inta[];inta=newint[5];D.inta[]={1,2,3,4,5};正确答案:D选项A:java中的数组是类,需要使用new关键字创建。选项B:落类型了,正确写法为inta[]=newint[5];选项C:重复定义变量a,正确写法:inta[];a=newint[5];12、String类实现Comparable接口,覆盖其中的compareTo()方法。下面哪个是正确的String类中被重写的compareTo()方法的方法头?A.publicintcompareTo(Stringo)B.publicvoidcompareTo(Stringo)C.publicintcompareTo(Objecto)D.publicvoidcompareTo(Objecto)正确答案:A解析:Comparable接口的定义如下:接口的实现类必须覆盖在接口中定义的抽象的方法,覆盖就意味在实现类中的方法要与在接口中定义的抽象方法同名、同参、同返回值。13、将类的某个成员方法的访问权限设置为protected的,则下面说法正确的是()。A.同一包中的其他类不可以访问该方法B.不同包中的子类可以访问该方法C.所有包中的类都可以访问该方法D.所有包中的类都不可以访问该方法。正确答案:B14、下列哪一个类声明是错误的?()A.classAB.publicclassAC.protectedclassAD.publicabstractclassA正确答案:C解析:类只能被默认或者public修饰符修饰,这是与成员变量和成员方法不一样的地方。15、下面关于数组和集合的说法,哪一个是错误的?()A.数组的长度一旦确定,不能修改;B.集合的长度可变,但是效率比数组低;C.数组和集合都属于引用类型;D.数组使用泛型指明所存储的对象的类型。正确答案:D解析:ArrayList是集合的一种类型。集合使用泛型指明所存储的对象的类型。16、下面代码有错误的行是:________。1:publicclassReview1307{2:publicstaticvoidmain(String[]args){3:Numberx=newInteger(3);4:System.out.println(x.intValue());5:System.out.println(x.compareTo(newInteger(4)));6:}7:}A.line2B.line3C.line4D.line5正确答案:D解析:(1)查JDK帮助文档,Number是Integer的父类,Number没有实现Comparable接口,而子类Integer实现了Comparable接口,即子类Integer新增了compareTo()方法。(2)x的声明类型是Number,实际类型是Integer,根据父类引用不能调用子类新增的方法的原则,x不可以直接调用compareTo()方法。(3)如果需要修改代码中的错误,可以进行强制类型转换,如下:System.out.println(((Integer)x).compareTo(newInteger(4)));17、inta[]={1,4,7,2,5,6,0},该数组第1个和最后1个元素的下标为哪一项?()A.0,7B.1,6C.0,6D.1,7正确答案:C18、假设arr是一个int类型的二维数组,下面关于arr的声明和初始化,哪一项是错误的?()A.int[][]arr={{1,2},{3,4,5}};B.int[][]arr=newint[2][3];C.int[][]arr=newint[2][];D.int[][]arr=newint[][3];正确答案:D解析:Java的二维数组是由一维数组模拟的,示例如下:没有第一维,就不会有第二维,所以,创建数组的时候,不能只指明第二维,不指明第一维。但可以仅指明第一维,不指明第二维,如选项C。19、下面说法哪一个是错误的?()A.构造方法的名称与类名一样。B.构造方法返回值可以为void。C.一个类可以有多个构造方法。D.在一个类中可以使用this调用该类的其他构造方法。正确答案:B解析:构造方法的作用是创建对象,因此,本质上,构造方法是有返回值的,其返回值就是它创建的对象。但是,由于即使不指明构造方法的返回值,JDK也知道其返回值类型,因此,构造方法的返回值类型省略掉了。但是绝对不能用void,void表示没有返回值。20、下面关于接口的定义哪个是正确的?A.interfaceA{voidprint(){};}B.abstractinterfaceAextendsI1,I2{abstractvoidprint(){};}C.abstractinterfaceA{print();}D.interfaceA{voidprint();}正确答案:D解析:(1)interface前面没有abstract修饰;(2)接口中的方法都是抽象的,因此不能有方法体,即{}。21、下面关于多态的说法,正确的是()。A.一个类中不能有同名的方法;B.子类中不能有和父类中同名的方法;C.子类中可以有和父类中名字相同,且参数相同的方法;D.多态性就是方法的名字和参数可以一样,但返回值的类型必须不一样。正确答案:C22、用于定义类成员的访问控制权的一组关键字是()A.class,float,double,publicB.float,boolean,int,longC.char,extends,float,doubleD.public,private,protected正确答案:D23、下面关于接口的说法哪一条是错误的?()A.接口是一种特殊的抽象类,接口的方法都是抽象方法;B.类可以实现接口;C.接口和子接口可以有自己的实例对象;D.可以使用接口声明引用,引用实现本接口或子接口的类的对象。正确答案:C解析:接口中的方法都是抽象的,不能创建实例;类似的,抽象
本文标题:面向对象技术Java 期末复习试卷(三)
链接地址:https://www.777doc.com/doc-7028127 .html