面向对象程序设计练习题库.docx
面向对象程序设计练习题库
一、单选题(共36题,每题1分,共36分)
1.下列关于protected的说法中,正确的是()
A、protected修饰的方法,只能给子类使用
B、protected修饰的类,类中的所有方法只能给子类使用
C、如果一个类的成员被protected修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问。
D、以上都不对
正确答案:C
答案解析:如果一个类的成员被protected访问控制符修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问。
2.下面关于FileInputStream和FileOutputStream的说法中,错误的是()
A、FileInputStream是InputStream的子类,它是操作文件的字节输入流
B、FileOutputStream是OutputStream的子类,它是操作文件的字节输出流
C、如果使用FileOutputStream向一个已存在的文件中写入数据,那么写入的数据会被追加到该文件原先的数据后面
D、使用FileInputStream读取文件数据时,必须保证要读取的文件存在并且是可读的
正确答案:C
答案解析:如果使用FileOutputStream向一个已存在的文件中写入数据,如果构造函数FileOutputStream的参数append的值是true,那么写入的数据才会追加到原先数据之后,否则的话,原先的数据会被清空,然后再写入新的数据。
3.下面哪种类型的文件可以在Java虚拟机中运行()
A、java
B、jre
C、exe
D、class
正确答案:D
答案解析:Java虚拟机都是执行.class文件,编译器执行.java文件。
4.关于下列List接口的方法,不是从Collection接口中继承而来的是()
A、size()
B、add()
C、get()
D、remove()
正确答案:C
答案解析:get()方法返回列表中指定位置的元素,不是继承自Collection接口。
5.若doubleval=Math.ceil(-11.9);,则val的值是()
A、11.9
B、-11.0
C、-11.5
D、-12.0
正确答案:B
答案解析:ceil是天花板的意思,表示向上取值,永远是得到大于参数的最小整数。
6.下面关于this关键字的描述中,错误的是()
A、如果类的成员变量与方法中的局部变量名相同,那么可以在方法中通过this关键字调用成员变量
B、只能在构造方法中使用this调用其他的构造方法
C、在构造方法中使用this调用构造方法的语句必须是该方法的第一条执行语句,且只能出现一次
D、可以在一个类的两个构造方法中使用this互相调用
正确答案:D
答案解析:不可以在一个类的两个构造方法中使用this互相调用。
7.下列方法中可以用于往HashSet集合中添加元素的是()
A、clear()
B、contains(Objecto)
C、iterator()
D、add(Ee)
正确答案:D
8.下列选项中,对Math.random()方法描述正确的是()
A、返回一个不确定的整数
B、返回0或是1
C、返回一个随机的double类型数,该数大于等于0.0小于1.0
D、返回一个随机的int类型数,该数大于等于0.0小于1.0
正确答案:C
答案解析:返回一个随机的double类型数,该数大于等于0.0小于1.0。
9.下列选项中,哪个关键字可以修饰方法内的局部变量?()
A、abstract
B、final
C、static
D、private
正确答案:B
答案解析:final可以修饰局部变量。
10.下列关于对象的类型转换的描述,说法错误的是()
A、对象的类型转换可通过自动转换或强制转换进行
B、无继承关系的两个类的对象之间试图转换会出现编译错误
C、由new语句创建的父类对象可以强制转换为子类的对象
D、子类的对象转换为父类类型后,父类对象不能调用子类的特有方法
正确答案:C
答案解析:由new语句创建的父类对象不能转换为子类的对象,否则会报编译出错。
11.下列关于LinkedList的描述中,错误的是()
A、LinkedList集合对于元素的增删操作具有很高的效率。
B、LinkedList集合中每一个元素都使用引用的方式来记住它的前一个元素和后一个元素。
C、LinkedList集合对于元素的查找操作具有很高的效率。
D、LinkedList集合中的元素索引从0开始。
正确答案:C
答案解析:由于LinkedList是双向循环链表结构,他的增删操作效率高但是查询操作没有ArrayList高。
12.以下选项中,哪个是File类中isFile()方法返回值的