面向对象原理与Java实践复习题集(1)
一、单项选择题(请将所选择的答案号码填写在每小题中的圆括号内) 1、final关键字不可以用来修饰( )。
A.类 B.成员方法 C.成员变量 D.接口 2、下面关于变量的说法,不正确的是( )。
A.实例变量是类的成员变量 B.实例变量用关键字static声明
C.在方法中定义的局部变量在该方法被执行时创建 D.局部变量在使用前必须被初始化
3、Java实现动态多态性是通过( )实现的。
A.重载 B.覆盖 C.接口 D.抽象类 4、下列关于重载方法描述正确的是( )。
A.重载方法的形式参数(类型、参数个数或参数顺序)必须不同 B.重载方法的参数名称必须不同 C.重载方法的返回值类型必须不同 D.重载方法的修饰词必须不同 5、下列说法正确的是( )。
A.子类不能定义和父类同名同参数的方法 B.子类只能继承父类的方法,而不能重载
C.重载就是一个类中有多个同名但有不同形参(类型、参数个数或参数顺序)和方法体的方法
D.子类只能覆盖父类的方法,而不能继承 6、类Teacher和Student都是类Person的子类,t、s、p分别是上述三个类的非空引用变量,关于以下语句说法正确的是( )。
if ( t instanceof Person ) { s = (Student) t ; }
A.将构造一个Student对象 B.表达式合法 C.编译时非法 D.编译时合法而在运行时可能非法
7、已知MyInterface是一个接口,ClassA是实现了MyInterface的一个类,ClassB是ClassA的子类,,是下列语句正确的是( )。
A.ClassB obj = new ClassA(); B.MyInterface obj = new ClassB; C.ClassA obj = new MyInterface();
D.MyInterface obj = new MyInterface(); 8、设有一个类的代码如下:
class outer {
public class Inner1 { }
public static class Inner2 { } }
则在另一个类的代码中,下列语句正确的是( )。
A.Outer.Inner1 obj = new Outter.Inner1();
B.Outer.Inner2 obj = new Outer.Inner2();
C.Outer.Inner1 obj = new Outer.Inner1().new Inner1(); D.Outer.Inner2 obj = new Outer().new Inner2(); 9、以下关于泛型的说法错误的是( )。
A.泛型是通过类型参数来提高代码利用性的一种技术 B.通过在类名后增加类型参数可以定义具有泛型特点的类 C.通过在接口名后增加类型参数可以定义具有泛型特点的接口 D.一个泛型类只能有一个类型参数
10、关于下面的程序,结论正确的是( )。 public class Test { public static void main(String[] args){ int[] a = new int[5]; a.length = 10;
System.out.println(a.length);
}
A.程序可以通过编译并正常运行,结果输出10 B.程序可以通过编译并正常运行,结果输出5 C.程序无法通过编译
D.程序可以通过编译但无法正常运行
11、使用( )表达式能产生[20, 999]之间的随机整数。
A.(int)(20+Math.random()*979) B.20+(int)(Math.random()*980) C.(int)Math.random()*999 D.20+(int)Math.random()*980
12、下面关于set集合处理重复元素的说法正确的是( )。
A.如果加入一个重复元素,将抛出异常
B.如果加入一个重复元素,add()方法将返回false
C.集合通过调用equals()方法可以返回包含重复值的元素 D.添加重复值将导致编译出错
13、关于异常处理的语法try–catch–finally的描述正确的是( )。
A.try–catch必须配对 B.try可以单独使用
C.try–finally必须配对使用
D.try–catch后如果定义了finally,则finally一般都会被执行 14、下列( )不是File类的功能。
A.创建文件 B.创建目录 C.删除文件 D.复制文件
15、用“new FileOutputStream(\true)”创建一个FileOutputStream的实例对象,则下列( )说法是错误的。
A.如果文件data.txt不存在,也不一定会抛出IOException异常 B.如果文件data.txt不存在,则可能会新建文件data.txt C.如果文件data.txt存在,则将覆盖掉文件中原有的内容 D.如果文件data.txt存在,则从文件的末尾开始添加新内容 16、下列说法正确的是( )。
A.BorderLayout是面板的默认布局管理器
B.当鼠标指针位于一个GUI组件的边上时,会发生一个MouseMotionEvent事件 C.一个面板(JPanel)不能被加入到另一个面板(JPanel)中 D.在BorderLayout中,添加到NORTH区的两个按钮将并排显示 17、关于Java的事件处理机制,下列说法正确的是( )。
A.每一个组件都可以发生任意类型的事件
B.事件处理机制有三个要素:事件源、监听器和处理事件的接口
C.监听器不必实现接口中的所有方法,只可实现需要的一个或几个方法即可 D.任意组件产生的事件,都可以定义事件适配器来实现 18、在Java程序中,下列关于线程的说法错误的是( )。
A.run()方法是运行程序的主体
B.多个线程运行时执行顺序是按照顺序执行的 C.如果run()方法执行结束了,说明线程死亡了
D.在Java中,高优先级的可运行线程会抢占低优先级线程 19、下列说法错误的是( )。
A.TCP是面向连接的协议,而UDP是无连接的协议 B.数据报传输是可靠的,可以保证包按顺序到达 C.URL代表的统一资源定位符一共包括五个部分
D.Socket和ServerSocket分别表示连接的Client端和Server端 20、关于JDBC数据库的说法错误的是( )。
A.建立数据连接时,必须加载驱动程序,可采用Class.forName()实现
B.建立与某个数据源的连接可采用DriverManager类的getConnection()方法 C.建立数据库连接时,必须要进行异常处理
D.JDBC中查询语句的执行方法必须采用Statement类实现 21.( )是指在调用一个方法时,每个实际参数“值”的副本都将被传递给此方法形参。
A.按引用传递 B.按值传递 C.按对象传递 D.按指针传递
22.( )是指子类中的一个方法与父类中的方法有相同的方法名并具有相同参数和类型的参数列表。 A.重载方法 B.覆盖方法 C.强制类型转换 D.none of about 3.当编译并运行下列程序段时,将会发生( )情况。
class VarField { int i ;
void amethod() { int i =2; System.out.println(i); } }
public class VarInit{
public static void main(String args[]) { VarField m = new VarField(); m.amethod(); } }
A.输出2 B.输出0 C.编译时出错 D.运行时出错
24.下面是关于类及其修饰符的一些描述,错误的是( )。
A.abstract类只能用来派生子类,不能用来创建abstract类的对象。 B.final类不但可以用来派生子类,也可以用来创建final类的对象。 C.abstract不能与final同时修饰一个类。
D.abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法。 25.下面语句非法的是( )。 A.Boolean b1 = true; B.Boolean b2 = null;
C.Boolean b3 = NULL; D.Boolean b4 = new Boolean(\ 26.以下代码能够编译通过的是( )。
A.
class Fruit {}
public class Orange extends Fruit{
public static void main(String[] args){ Fruit f = new Fruit (); Orange o = f; } } B.
interface Fruit {}
public class Apple implements Fruit { public static void main(String[] args) { Fruit f = new Fruit(); Apple a = f; } } C.
interface Fruit{}
pclass Apple implements Fruit {
public static void main(String[] args){ Apple a = new Apple(); Fruit f = a; } } D.
interface Fruit{}
class Apple implements Fruit{} class Orange implements Fruit{} public class MyFruit{
public static void main(String[] args){ Orange o = new Orange(); Fruit f = o;
Apple a = f; } }
27.语句System.out.println(args[i]);有可能引发 ( ) 异常。
A.ArithmaticException B.ArraylndexOutOfBoundsException C.NumberFormatException D.FileNotFoundException 28.下列程序编译或执行的结果是( )。 class Test{
public static void main(String[] args){ int flag = 90; try{
System.out.println(\ if(flag>=90) throw new Exception(\ }catch(Exception e){
System.out.println(\ }finally{
System.out.println(\ } } }
A.try-catch entered after catch-block
B.try-catch entered
Exception is: the grade is A after catch-block
C.try-catch entered the grade is A
Exception is: the grade is A after catch-block
D.编译通不过
29.以下( )是非法的构造RandomAccessFile对象的代码。 A.RandomAccessFile(new File(\ B.RandomAccessFile(\ C.RandomAccessFile(\ D.RandomAccessFile(\ 30.下列( )陈述是错误的。
A.FileInputStream的skip()方法将用于从FileInputStream中跳过并丢弃一些字节的数据
B.FileInputStream的read()方法用于从一个FileInputStream中读取字节 C.FileInputStream的get()方法用于从一个FileInputStream中读取字节