面向对象技术Java 期末复习试卷(三)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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[])