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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

期末复习试卷(三)

一、单项选择题

1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源

文件名是()

A. teststudent.java

B. teststudent .class

C. TestStudent.java

D. 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类的parseInt()方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T是泛型,对于Integer类,T 被替换为Integer,如下图:

因此,Integer类中compareTo()方法的定义如下:

因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer:

System.out.println(pareTo(n2));

正确写法如下:

System.out.println(pareTo((Integer) n2));

类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。

3、下面哪种类型不是引用数据类型?()

A. 数组

B. char

C. String

D. Object

正确答案:B

解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种:

布尔类型:boolean

字符类型:char

整数类型: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 implements 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/protected。

7、下列哪个是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[])

相关文档
最新文档