当前位置:文档之家› 面向对象技术Java-期末复习试卷(三)

面向对象技术Java-期末复习试卷(三)

期末复习试卷(三)单项选择题1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源文件名是( )A. teststudent.javaB. teststudent .classC. TestStudent.javaD. TestStudent.class正确答案:C解析:一个java 文件中可以包含多个类, 但最多只能有一个类是公共类 ( public ), 该java 文件的名字要与公共类的一致。

2、关于下面的代码,哪个描述是正确的?public class Test{public static void main(String[] args){Integer n1 = new Integer(3);Object n2 = new Integer(4);System.out.println(pareTo(n2));}}A. 可以编译通过,可以运行,并得到预期结果。

B. 可以编译通过,可以运行,但不能得到预期结果。

C. 可以编译通过,但又运行错误。

D. 有编译错误。

正确答案:D解析:Integer 类是基本数据类型int 的包装类,里面封装了一个int 类型的值, 提供了一些实用的方法 (例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parselnt() 方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T 是泛型,对于Integer 类,T 被替换为Integer,如下图:类IntegerJ iTd 1 J. ・ Qb J 匕匚上I—■-1■刖y •■Nuiib 日:rI— j Lsiiif. IxL-t eger因此,Integer 类中compareTo()方法的定义如下:LE cioznyp BXE T E(fcritegerpiicthe rlrrteger) 枉昭1丄比较两个St码丸对象口因此,compareTo的参数只能是Integer 类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer :System.out.pri ntln(n pareTo (n 2));正确写法如下:System.out.println(n pareTo((Integer) n2));类似的包装类还有Lon g\Float\Double\Char\Boolea n 等,都是将基本数据类型包装为类。

3、下面哪种类型不是引用数据类型?( )A. 数组B. charC. Stri ngD. Object正确答案:B解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种:布尔类型:boolean整数类型:byte ,short ,int ,long浮点类型:float ,double引用数据类型包括类、接口、抽象类、数组(本质上是类) ,引用类型可以提供功String 是一个类,所以可以使用String s = new String("bistu") 的方式创建对象;数组也是一个类,所以需要用new 创建对象。

4、类Test 要定义一个无参数、无返回值的方法method ,并能够通过Test.method() 的方式调用method 方法,则method 方法的定义形式为( )。

A. public static void method ( )B. public void method ( )C. public final void method ( )D. public abstract void method ( )正确答案: A 解析:静态方法(也叫类方法)可以不创建对象,而直接通过类名调用。

5、下列关于接口说法正确的是( )。

A. 抽象类中的方法不全都是抽象的,因此可以创建对象。

B. 接口的引用既可以调用实现类重写的接口的方法,也可以调用实现类新增的方法。

C. 接口的实现类可以实现接口的部分方法。

D. 接口的方法都是抽象的,因此不可以创建对象。

正确答案:D解析:选项 A 的前半句是对的,后半句错了。

选项 B 前半句是对的,后半句不对。

示例如下:public interface GeometricObject{public double getArea();}public class Circle impleme nts GeometricObject {public double getArea(){ .•••.}public double getPerimeter(){ ....... }}public TestCircle{public static void main(String[] args){GeometricObject c = new Circle();c.getArea(); // 访问实现类覆盖接口的方法可以c. getPerimeter() // 错误:不可以访问实现类新增的方法}}选项C错误,实现类必须实现接口的所有的抽象的方法。

6、将类的成员方法的访问权限设置为默认的,则该成员方法能被( )。

A. 同一包中的类访问B. 其他包中的类访问C. 所有的类访问D. 所有的类的子类访问正确答案:A解析:注意本题可以继续扩展,例如把访问权限换成public/private/protected7、下列哪个是Java应用程序主类中正确的main方法声明?()A. public void main(String[] args)B. static void main(String[] ar)C. public static void Main(String a[])D. public static void main(String args[])8、有一段java应用程序,其中包含一个公共类,名字为Cat,那么保存它的源文件名是()A. Cat.javaB. Cat.classC. CatD. 都对正确答案:A与第 1 个选择题类似。

9、下列哪个是JDK提供的编译器?()A. java.exeB. javac.exeC. javap.exeD. javaw.exe正确答案:B10、某个源文件如下:public class TestPerson{}class Person{}class Student extendsPerso n{}那么保存它的源文件名是()A. TestPerson.javaB. Person.javaC. Student.javaD. TestPerson.class正确答案: A 参考第1、8 题。

11、以下定义一位数组的语句中,正确的是()A. int a⑸;B. i nt a[] =new [5];C. int a[];int a = new in t[5];D. i nt a[] = {1,2,3,4,5};正确答案:D选项A: java中的数组是类,需要使用new关键字创建。

选项B:落类型了,正确写法为int a[] = new int[5];选项C:重复定义变量a,正确写法:int a[];a = new in t[5];12、String类实现Comparable接口,覆盖其中的compareTo()方法。

下面哪个是正确的String类中被重写的compareTo()方法的方法头?A. public int compareTo(Stri ng o)B. public void compareTo(Stri ng o)C. public int compareTo(Object o)D. public void compareTo(Object o)正确答案:A解析:Comparable接口的定义如下:方法摘要⑷ Goinp且IZC T CJ0)比较此对象与指定对象的I阱。

接口的实现类必须覆盖在接口中定义的抽象的方法,覆盖就意味在实现类中的方法要与在接口中定义的抽象方法同名、同参、同返回值。

13、将类的某个成员方法的访问权限设置为protected的,则下面说法正确的是()。

A. 同一包中的其他类不可以访问该方法B. 不同包中的子类可以访问该方法C. 所有包中的类都可以访问该方法D. 所有包中的类都不可以访问该方法。

正确答案:B14、下列哪一个类声明是错误的?( )A. class AB. public class AC. protected class AD. public abstract class A正确答案:C解析:类只能被默认或者public 修饰符修饰,这是与成员变量和成员方法不一样的地方。

15、下面关于数组和集合的说法,哪一个是错误的?( )A. 数组的长度一旦确定,不能修改;B. 集合的长度可变,但是效率比数组低;C. 数组和集合都属于引用类型;D. 数组使用泛型指明所存储的对象的类型。

正确答案:D解析:ArrayList 是集合的一种类型。

集合使用泛型指明所存储的对象的类型。

16、下面代码有错误的行是: _________ 。

1:public class Review1307{2:public static void main(String[] args){3:Number x = new Integer(3);4:System.out.println(x.intValue());5:System.out.println(pareTo(new Integer(4)));6:}7:}A. line 2B. line 3C. line 4D. line 5正确答案:D解析:(1)查JDK帮助文档,Number是Integer的父类,Number没有实现Comparable 接口,而子类Integer 实现了Comparable 接口,即子类Integer 新增了compareTo()方法。

(2)x的声明类型是Number,实际类型是In teger,根据父类引用不能调用子类新增的方法的原则,x不可以直接调用compareTo()方法。

(3)如果需要修改代码中的错误,可以进行强制类型转换,如下:System.out.println( ((Integer)x) .compareTo(new Integer(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 = new int[2][3];C. int[][] arr = new int[2][];D. int[][] arr = new int[][3];正确答案:D解析:Java的二维数组是由一维数组模拟的,示例如下:没有第一维,就不会有第二维,所以,创建数组的时候,不能只指明第二维,不指明第一维。

相关主题