Java面向对象测试题

一、选择题

针对以下题目,请选择最符合题目要求的答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。每题2分

  1. 关于java中JDBC说法错误的是()。(选择二项)
    A. 加载JDBC驱动时,如果系统中不存在给定的类,则会引发的异常类型是SQLException。
    B. DriverManager类调用getConnection()方法,创建连接对象并返回引用。
    C. PreparedStatement接口是Statement的子类接口,它比Statement对象使用起来更加灵活,更有效率,更具安全性。
    D. ResultSet负责保存和处理查询结果,此对象的nextInt()方法可以使光标向下移动一行,然后通过一系列getXXXX方法实现对当前行各列数据的操作。

  2. 阅读下列java代码,选项正确的是()。(选择一项)

 abstract class Bird {
	  private abstract void fly();  //第1行
	  public abstract void shout();
 }
  abstract class RedBird extends Bird {  //第2行
	public void fly() {
		System.out.println(“曲线飞。。。。”)}
  }
 public class Test{
	public static void main (String[] args){
	   RedBird redBird =new RedBird();   //第3行
	   redBird.fly();
	}
}

A. 编译错误,错误位置是第1行和第2行
B. 编译错误,错误位置是第2行和第3行
C. 编译错误,错误位置是第1行和第3行
D. 正确运行,输出结果是:曲线飞。。。

  1. 给定如下java代码,不可以填入下划线处的代码是()。(选择二项)
    import java.util.*;
    public class Test {
    public static void main (String[] args){


    list.add(“list”);
    }
    }
    A. List list=new LinkedList();
    B. List list=new List();
    C. LinkedList list=new ArrayList();
    D. LinkedList list=new LinkedList();

  2. 阅读如下java代码,执行结果是()。(选择一项)
    public class Test{
    public static void main (String [] args){
    try{
    String s=null;
    s=s.toLowerCase();
    }catch(ArithmeticException e){
    System.out.println(“ArithmeticException”);
    }catch(NumberFormatException e){
    System.out.println(“NumberFormatException”);
    }
    }
    A. ArithmeticException
    B. NumberFormatException
    C. Exception
    D. 没有输出任何类容,显示NumberFormatException异常信息

  3. 阅读java代码,选项()不是此方法的重载。(选择一项)
    public int getGirth(int a,int b){
    return 2*(a+b);
    }
    A. public int getGirth(int a){
    return 2a;
    }
    B. public double getGirth(int a,double b){
    return 2
    ab;
    }
    C. public double getGirth(int a,int b){
    return 2
    (a+b);
    }
    D. public double getGirth(int a,int b,int c){
    return c*(a+b)/2;
    }

  4. 阅读如下java代码(接口和Test类放在不同文件中),运行结果正确的选项是()。(选择一项)

public interface Animal{
		int MAX_AGE=100;
		void shout();
	}
	class Dog implements Animal{
		public void shout(){
			System.out.println("WW");
		}
	}
	class Cat implements Animal{
		public void shout(){
			System.out.println("MM");
		}
	}
	public class Test{
		public static void main(String[] args){
			Animal al=new Dog();
			al.shout();
			al.MAX_AGE=150;
			System.out.println(al.MAX_AGE);
		}
	}
}

A. WW
100
B. WW
150
C. MM
150
D. 编译错误

  1. 阅读下面java片段,在D盘下有文件aa.txt,存蓄的内容是“我爱学java!”,下列选项正确的是()。(选择一项)
Reader rd=null;	//字符流
	char[] ch=null;
	int length=0;
	StringBuffer sb=new StringBuffer();
	try{
		rd=new FileReader("d:/aa.txt");
		ch=new char[1];
		length=rd.read(ch);
		while(length!=0){
			sb.append(ch);
			length=rd.read(ch);
		}
		System.out.println(sb.toString());
	}

A. 控制台输出内容为:“我爱学java!”
B. 控制台输出内容为:“我”
C. 编译正常,但什么也没有输出,程序死循环
D. 编译错误

  1. 在JAVA中,关于面向对象,说法不正确的是()(选择一项)
    A. 现实世界就是“'面向对象的”,面向对象就是采用“现实模拟”的方法设计和开发程序
    B. 面向对象设计的过程就是抽象的过程
    C. 面向对象技术是目前计算机软件开发中最流行的技术
    D. java和C语言都是完全面向对象的编程语言

  2. 在JAVA中,关于构造方法,说法错误的是()。(选择一项)
    A. 方法名和类名相同
    B. 没有返回类型
    C. 必须声明为public
    D. 可以重载

  3. 在JAVA中, 以下关于static关键字的说法不正确的是()(选择两项)
    A. static 可以用来修饰方法,但不可以修饰属性
    B. 在方法里可以定义static变量
    C. static修饰的属性和方法称为类属性、类方法
    D. 不使用static修饰的属性和方法,通常称为实例属性、实例方法

  4. 在JAVA中,关于继承的说法错误的是()(选择一项)
    A. 使用extends关键字实现一个类继承另一个类
    B. 使用JAVA类都直接或间接地继承java.lang.Object类
    C. 在子类的构造方法中,必须显式调用父类的构造方法
    D. 在子类的构造方法中,可以通过super关键字调用父类的构造方法

  5. 以下JAVA代码,横线处应填写()

   Try{
	Class.forname(JDBC驱动类);
	Connection con=DriverManager.getConnection(JDBC URL,数据库用户名,密码);
	Statement stmt=con.createStatement();
	ResultSet rs=________("select * from stuinfo");
	While(____){
	//处理结果
	.............省略代码.............
	}
	}catch(Exception ex){
		.....省略代码............
	}(选择一项)	

A. stmt.executeUpdate
rs.hasNext()
B. stmt.executeQuery
rs.hasNext()
C. stmt.executQuery
rs.next()
D. stmt.executeUpdate
rs.next()

  1. 在JAVA中,()类的主要职责是依据数据库的不同管理不同的JDBC驱动程序。(选择一项)
    A. Statement
    B. Connection
    C. DriverManager
    D. ResultSet

  2. 在JAVA中,下列选项()不是实现多态的条件是。(选择一项)
    A. 继承的存在
    B. 子类重写父类的方法
    C. 父类引用变量指向子类对象
    D. 父类必须是抽象类

  3. 在JAVA中,假设下列每个选项中的两个方法在同一个类中, 则属于方法的重载的是()(选择二项)
    A. public void work()和public void work (String type)
    B. public String work(String type)和public void work(Sting type)
    C. public void work(String type)和public void work2(String type)
    D. public void work(String type)和public void work(String type,int time)

  4. 在JAVA中,关于异常处理,以下说法不正确的是()(选择一项)
    A. java的异常处理是通过5个关键字来实现的:try、catch、finally、throw和throws
    B. 一个try语句块后面只能跟一个catch语句块和一个finally语句块
    C. log4j是一个优秀的日志记录工具
    D. 异常可以分为Checked异常和运行时异常两大类

  5. 下列关于java.until.ArrayList的说法正确的是()(选择二项)
    A. 这个集合的元素是有序的
    B. 可以通过键来获取这个集合的元素
    C. 可以通过addFirst()方法,在集合的首部插入元素
    D. 在对这个集合执行遍历操作时,效率比较高

  6. 如下JAVA代码中,存在错误的代码是()

abstract class Shape{//1
	public abstract double getArea(){};//2
}
class Square extends Shape{
	private double height=0;
	public Square(double height){
		this.height=height;
	}
	public double getArea(){ //3
		return(this.height*this.height);
	}		
}
class Test{
	public static void main(String[] args) {
		Shape square=new Square(3); //4
		System.out.print(square.getArea());
	}
}(选择一项)

A. 1
B. 2
C. 3
D. 4

  1. 如下JAVA代码,编译运行结果是()。
public class Test{
	public static void main(String[] args) {
		String[]aryTest={"1#","2#"};
		try {
			for(int i=0;i<aryTest.length;i++){
				System.out.println(aryTest[i]);
			}
			System.out.print("3#");
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.print("4#");
		}finally{
			System.out.print("5#");
		}
		System.out.print("6#");
	}
}(选择一项)

A. 输出1#2#3#6#
B. 输出1#2#3#5#6#
C. 输出1#2#5#后,由于程序异常而中止
D. 输出1#2#5#6#后,由于程序异常而中止

  1. 下面的程序中定义了一个JAVA接口,其中包含()处错误。
public interface Shape{
	int MAX_SIZE=20;
	void calculate(){
		System.out.println("calculate....");
	}
	private int getSize();
	void setSize(int i);
}(选择一项)

A. 1
B. 2
C. 3
D. 没有错误

二、问答题 每题10分

1、什么是多态?以及多态体现的理念是什么?

2、简要说明时候JDBC操纵Oracle数据库的步骤

3、简述子类转换成父类时的原则。

4、简要说明abstract、final关键字的用法

三、编程题 20分(每题10分)

  1. 创建一个打印机类Printer,定义抽象方法print();创建两个子类:针式打印机DoMatriPrinter和喷墨打印机类InkperPrinter,并在各自类中重写方法print(),编写测试类实现两种打印机打印。再添加一个激光打印机子类LaserPrinter,重写方法print(),修改测试类实现该打印机打印。

  2. 使用JDBC对数据库中的数据进行操作在程序开发时是很常见的工作,为了加快开发速度、优化代码,请编写一个DBUtil类来完成数据库的连接与关闭。
    1)建立类DBUtil
    2)编写连接的方法
    3)编写关闭的方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁云亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值