Java面向对象试题集

合集下载

java面向对象练习题

java面向对象练习题

java面向对象练习题# Java面向对象练习题一、选择题1. 在Java中,以下哪个关键字用于定义类的访问权限为“仅包内可见”?- A. public- B. private- C. protected- D. 默认(不写访问修饰符)2. 以下哪个是Java中的构造方法?- A. 与类名相同,没有返回类型的方法- B. 与类名不同,没有返回类型的方法- C. 与类名相同,有返回类型的方法- D. 与类名不同,有返回类型的方法3. 在Java中,哪个关键字用于实现类的继承?- A. extends- B. implements- C. override- D. abstract4. 以下哪个是Java中类的成员变量?- A. 局部变量- B. 实例变量- C. 静态变量- D. 方法参数5. 以下哪个是Java中的多态性?- A. 接口- B. 继承- C. 封装- D. 抽象类二、简答题1. 解释Java中的封装性,并给出一个封装的类的例子。

2. 描述Java中接口和抽象类的区别。

3. 什么是Java中的继承?请举例说明如何使用继承。

三、编程题1. 创建一个名为`Person`的类,包含姓名(name)、年龄(age)和性别(gender)三个属性。

为每个属性提供getter和setter方法。

2. 编写一个名为`Student`的类,它继承自`Person`类,并添加一个名为`studentID`的属性。

为`studentID`提供getter和setter方法,并重写`toString`方法以返回学生的详细信息。

3. 创建一个接口`Movable`,包含一个方法`move()`。

然后创建一个名为`Car`的类实现该接口,并提供`move`方法的具体实现。

四、综合应用题1. 设计一个简单的银行账户系统,包含以下类:- `Account`:基本账户类,包含账户ID、账户余额和存款(deposit)与取款(withdraw)方法。

面向对象程序设计JAVA试题

面向对象程序设计JAVA试题

面向对象程序设计JAVA试题一、单项选择题(共10题,每题2分,共20分)1.以下哪个选项是正确的Java访问修饰符?A. PublicB. PrivateC. FinalD. Static2.在Java中,接口可以实现多继承的目的吗?A. 是的B. 不是3.以下哪个关键字用于创建Java对象的实例?A. NewB. InstanceC. CreateD. Object4.Java中的构造方法有什么特点?A. 与类名相同B. 可以有返回类型C. 可以被继承D. 可以被私有化5.下面的代码在Java中是什么类型的声明?```String[] names = new String[5];```A. 变量声明B. 方法声明C. 类声明D. 接口声明6.Java中的继承关系是如何表示的?A. 通过extends关键字B. 通过implements关键字C. 通过super关键字D. 通过this关键字7.Java中的多态是指什么?A. 同一个对象可以引用不同类型的实例B. 同一个对象可以有不同的方法C. 同一个对象可以有多个实例D. 同一个对象可以有多个子类8.以下哪个选项是Java中的关键字?A. StringB. IntegerC. BooleanD. Final9.Java中的封装是什么意思?A. 隐藏对象的实现细节B. 创建新的对象类型C. 允许对象进行通信D. 限制对象的访问权限10.Java中的抽象类和接口有什么区别?A. 抽象类可以实现方法,接口不能B. 抽象类可以被实例化,接口不能C. 抽象类可以继承多个类,接口只能继承一个D. 抽象类可以有变量,接口不能二、编程题请写一个Java程序,实现一个学生管理系统。

要求有以下功能:1. 添加学生信息(包括学号、姓名、性别、年龄、成绩等字段)2. 修改学生信息3. 删除学生信息4. 查询学生信息5. 统计学生数量6. 按照成绩排序学生信息三、综合题某公司需要开发一个员工管理系统,你被指派为项目经理,请设计一个基于面向对象的Java程序,实现以下功能:1. 添加员工信息(包括员工号、姓名、性别、年龄、职务等字段)2. 修改员工信息3. 删除员工信息4. 查询员工信息5. 统计员工数量6. 按照年龄排序员工信息请按照上述要求编写你的Java程序,并确保程序的可读性和可维护性。

Java面向对象试题_百度文库

Java面向对象试题_百度文库

Java面向对象试题共30道题,每题3分,满分90分,60分算及格,不及格的要补考。

1 在Java中,如果父类中的某些方法不包含任何逻辑,并且需要有子类重写,应该使用()关键字来申明父类的这些方法。

(选择一项a Finalb Staticc Abstractd Void2 给定两个java程序,如下:public interface Face{int counter = 40;}public class Test implements Face{private static int counter;public static void main(String[]args{System.out.println(++counter;}}Test.java 的编译运行结果是()。

(选择一项a 40b 41c 0d 13 给定java代码,如下:public class Test{static int i;public int aMethod( {i++;return i;}public static void main(String [] args{Test test = new Test( ;test.aMethod( ;System.out.println(test.aMethod( ;}}编译运行后,输出结果是()。

(选择一项a 0b 1c 2d 34 给定java代码,如下:abstract class Shape{abstract void draw( ;}要创建Shape类的子类Circle,以下代码正确的是()。

(选择二项a class Circle extends Shape{int draw( {}}b abstract class Circle extends Shape{}c class Circle extends Shape{void draw( ;d class Circle extends Shape{void draw( {}}5 给定java代码,如下:class Parent{public void count( {System.out.println(10%3;}}public class Test extends Parent{ public void count(int i{System.out.println(10%i;}public static void main(String[]args{ Parent p = new Test( ;p.count(3;}}编译运行,结果是()。

JAVA面向对象程序设计练习题库

JAVA面向对象程序设计练习题库

第一章Java简介1.下面()是JDK中的Java运行工具.(选择二项)A.javacB.javamC.javaD.javar【解析】A C2.选出在Java中有效的注释声明(选择二项)A./This is a commentC./This is a commentD./*This is a comment*/【解析】AD3.下面()命令可用于编译Java程序.(选择一项)A.javaB.javacC.appletviewerD.javadoc【解析】B4.下面()数据类型可用于main()方法中传递的参数.(选择一项)A.StringB.IntegerC.BooleanD.Variant【解析】A5.在屏幕上显示的消息正确的语句是(选择一项)【解析】A6.Java编译器会将Java程序转换为(选择一项)A.字节码B.可执行代码C.机器代码D.以上所有选项都不正确【解析】A7.Java源代码文件的扩展名为(选择一项)A..classB..javaC.D.以上所有选项都不正确【解析】B第二章Java语言基础1.在Java中,byte数据类型的范围是(选择一项)A.-32767~32768B.-32768~32767C.-127~128D.-128~127【解析】D2.以下()是合法的标识符(选择二项)A.Te1_numB.emp1C.8678【解析】AB3.下列代码的输出结果是(选择一项)class you{public static void main(String[]args){int sales=3500;int profit=800;}}【解析】A4.以下关键字(选择一项)用于终止循环语句A.breakB.exitC.endD.terminate【解析】A5.不论测试条件是什么,下列(选择一项)循环将至少执行一次.A.whileB.do-whileD.for-each【解析】B6.下列代码的输出结果是(选择一项)class Test{public static void main(String args[]){int ctr=3;int result=1;while(ctr>1){result=result*ctr;ctr--;}}}A.6【解析】A7.编译运行下面的代码时会打印(选择一项)public class Q{public static void main(String argv[]){int anar[]=new int[]{1,2,3};}}A.1B.初始化错误C.2D.数组超界【解析】C第三章面向对象的概念和Java实现(1)1.()是拥有属性和行为或方法的实体.(选择一项)A.对象B.类C.方法D.构造方法【解析】A2.对象的特性在类中表示为变量,成为类的(选择一项)A.对象B.属性D.数据类型【解析】B3.()就是检验有关某个实体的所有可用信息的过程,以便标识与应用程序相关的信息.(选择一项)A.抽象B.封装C.方法D.构造方法【解析】A4.如果类的方法没有返回值,该方法的返回类型应当是(选择一项)A.nullB.voidC.staticD.public【解析】B5.()关键字表示它是一种类方法,且无需创建对象即可访问. (选择一项)A.voidB.staticC.returnD.public【解析】B6.每个类都定义有(),以便初始化其成员变量(选择一项)A.方法B.main()方法C.构造方法D.对象【解析】C第四章面向对象的概念和Java实现(2)1、()术语常常用来指代类。

java面向对象程序设计期末考试题及答案

java面向对象程序设计期末考试题及答案

java面向对象程序设计期末考试题及答案一、单项选择题(每题2分,共20分)1. 在Java中,哪个关键字用于声明一个类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above答案:D3. 在Java中,哪个关键字用于创建对象?A. newB. createC. makeD. instantiate答案:A4. Java中的继承是通过哪个关键字实现的?A. extendsB. inheritC. deriveD. superclass答案:A5. 在Java中,哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. abstract答案:A6. 下列哪个不是Java中的方法重载的条件?A. 方法名相同B. 参数列表不同C. 返回值类型不同D. 访问修饰符不同答案:C7. 在Java中,哪个关键字用于声明一个抽象方法?A. abstractB. virtualC. overrideD. final答案:A8. Java中的多态性可以通过哪种方式实现?A. 方法重载B. 方法覆盖C. 接口实现D. 继承答案:B9. 在Java中,哪个关键字用于声明一个内部类?A. innerB. nestedC. staticD. inner class答案:B10. Java中的垃圾回收机制是自动的吗?A. YesB. NoC. SometimesD. Depends on the JVM答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承另一个类的______方法和属性。

答案:非私有2. Java中的______关键字用于声明一个类是不可被继承的。

答案:final3. 在Java中,______关键字用于声明一个类是抽象的。

java面向对象试题及答案

java面向对象试题及答案

java面向对象试题及答案1. 试题一题目:什么是面向对象编程?请简要描述面向对象编程的优势和特点。

答案:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,将程序中的数据和操作数据的方法进行了封装,使得程序更加模块化和易于理解。

面向对象编程的主要特点包括封装、继承和多态。

封装使得数据和对数据的操作集中在一个对象中,可以隐藏内部实现细节,提供公共的接口进行访问,增加了程序的安全性和灵活性。

继承允许新建的类继承已有类的属性和方法,通过扩展和重写已有类的功能,减少了代码的重复性,提高了代码的复用和可维护性。

多态允许不同的对象对相同的消息作出不同的响应,通过接口和抽象类的使用,实现了更加灵活和可扩展的程序设计。

面向对象编程的优势包括了代码的重用性、可维护性、可扩展性和灵活性。

通过封装和继承的应用,可以减少代码重复,提高开发效率,并且通过多态的应用,可以实现程序的灵活性,方便后续的扩展和修改。

2. 试题二题目:什么是类?请简要描述类的特点和组成部分。

答案:类是面向对象编程中的核心概念,是对一类具有相同属性和行为的对象进行抽象和封装的模板。

类是用来创建对象的蓝图,可以通过实例化类来创建对象。

类的特点包括了封装、继承和多态。

类通过封装将属性和方法进行了封装,提供了公共的接口与外部进行交互,隐藏了内部实现细节。

继承允许新建的类继承已有类的属性和方法,在原有基础上进行修改和扩展。

多态允许不同的对象对相同的消息作出不同的响应,实现了程序的灵活性和可扩展性。

类的组成部分包括了属性(Field)和方法(Method)。

属性(也称为成员变量)用于描述对象的状态,可以是基本类型或其他类的对象。

方法用于描述对象的行为,可以是处理属性的操作,也可以是其他业务逻辑的实现。

3. 试题三题目:请简要解释传值和传引用的区别,并用代码示例说明。

答案:传值和传引用是在方法调用时,参数传递的两种方式。

java面向对象考题和答案

java面向对象考题和答案

1.下面代码的输出结果是A.300 300B.100 100C.300 100D.100 3002.程序执行的结果是:::x =" + x++; }}A.doStuff:x =7B. main: x = 7B.doStuff:x =7main: x = 6C.doStuff:x =6main: x = 7D.doStuff:x =6main: x = 63.下列关于JVM的内存结构描述正确的是:A.类的各种信息在方法区中保存B.堆用于存放程序运行过程当中所有的局部变量C.栈用于存储使用new关键字创建的对象D.数组属于JVM的内存结构4.下列代码的输出结果是:A.cB.iC.dD.s5.程序执行的结果是:A.nullB.TomC.JackD." "6.关于构造方法,下列说法错误的是:A.构造方法不可以进行方法重写B.构造方法用来实例化一个新的对象C.构造方法具有和类名相同的名称D.构造方法不返回任何数据类型7.关于 Java 中继承的特点,下列说法正确的是:A.使类的定义复杂化B.Java 只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的C.子类继承父类的所有成员变量和方法,包括父类的构造方法D.不可以多层继承,即一个类不可以继承另一个类的子类8.下列代码运行的结果是:A.Value: 3B.Value: 8C.Value: 13D.Value: 189.下列代码编译和运行的结果是:A.输出:0000B.输出:4321C.代码public EmployeeString id {行,出现编译错误D.抛出运行时异常10.下列代码的运行结果是:A.peepB.barkC.meowD.抛出运行时异常11.下列代码编译和运行的结果是:A.输出:TestAB.输出:TestBC.输出:TestA TestBD.编译错误12.请看下列代码:class One {void foo {}}class Two extends One {// insert method here}下列选项中的代码,放置在<插入代码>处无编译错误的是: A.int foo { / more code here / }B. protected void foo { / more code here / }C. public void foo { / more code here / }D. private void foo { / more code here / }13.下列选项中,不属于Java 的访问修饰符的是:A.privateB.protectedC.friendlyD.public14.下列代码的输出结果是:A.300-100-100-100-100B.300-300-100-100-100C.300-300-300-100-100D.300-300-300-300-10015.下列代码运行的结果是:public class Base { public static final String FOO = "foo";A.foofoofoofoofooB.foobarfoobarbarC.foobarfoofoofooD.foobarfoobarfoo16.关于下列代码说法正确的是:A.编译错误B.运行时抛出异常C.运行后,fa对象属性id的值没有改变,应然是42D.运行后,fa对象属性id的值改变成新的值6917.请看下列代码编译和运行的结果是:A.sun 2B.null 2C.null 1D.运行时抛出NullPointerException异常18.下列代码的输出结果是:A.0, 0,0B.150, 60, 0C.150, 150, 150D.抛出运行时异常19.请看下列代码:public abstract class Employee {protected abstract double getSalesAmount;public double getCommision {return getSalesAmount 0.15;estA {}}class Sales extends Employee {<插入代码>}在<插入代码>处填入的方法正确的是:A.double getSalesAmount { return 1230.45; }B.public double getSalesAmount { return 1230.45; }C.private double getSalesAmount { return 1230.45; }D.protected double getSalesAmount { return 1230.45; }20.关于下列代码说法正确的是:public interface A { public void doSomethingStringthing;}public class AImpl implements A { public void doSomethingString msg { }}public class B { public A doit { return null; } public String execute { return null; }}public class C extends B { public AImpl doit { return null; } public Object execute { return null; }} A. 所有类和接口都编译成功 B.类B编译失败C.类Aimpl编译失败D.类C编译失败21.关于下列代码说法正确的是:interface A { public void aMethod;}interface B { public void bMethod;}interface C extends A, B { public void cMethod;}class D implements B { public void bMethod {}}class E extends D implements C { public void aMethod {} public void bMethod {} public void cMethod {}}A.编译失败B.如果定义D e = new E;, 那么 e.bMethod;调用D类的bMethod方法C.如果定义D e = Dnew E;, 那么 e.bMethod;调用D类的bMethod方法D.如果定义D e = Dnew E;, 那么 e.bMethod;调用E类的bMethod方法22.请看下列代码:处理请求";}};}}如果上述代码采用回调模式编写,下列关于ServletAction的定义正确的是:A. public static class ServletAction { public void doService;}B.public final class ServletAction { public void doService;}C.public class ServletAction { public void doService;}D. public interface ServletAction { public void doService;}23.下列代码运行的结果是:A.HelloB. Hello WorldC. Hello World 5D.运行后无输出24.请看下列代码编译和运行的结果是:A.输出:testB.输出:nullC.代码行,编译出错D.代码public String toString {行,编译出错25.请看下列代码:关于上述代码说法正确的是:A.在第5行出现编译错误,fn方法的参数必须用final修饰B.在第3行出现编译错误,在方法的内部不能写类C.在第8行出现编译错误,在方法的内部不能实例化Inner类的对象D.运行代码,控制台输出100A1,正确答案:C2,正确答案:D3,正确答案:A4,正确答案:A5,正确答案:B6,正确答案:B7,正确答案:B8,正确答案:A9,正确答案:C10,正确答案:D11,正确答案:B 12,正确答案:BC 13,正确答案:C 14,正确答案:B 15,正确答案:D 16,正确答案:A 17,正确答案:D 18,正确答案:C 19,正确答案:BD 20,正确答案:D 21,正确答案:D 22,正确答案:D 23,正确答案:A 24,正确答案:A 25,正确答案:A。

Java面向对象测试试题

Java面向对象测试试题

Java面向对象测试试题一、单选题1. 下面哪个关键字可以用来声明一个抽象类?A) abstractB) finalC) privateD) protected2. 在Java中,一个类可以同时继承多个类吗?A) 可以B) 不可以3. 在Java中,接口的成员变量默认是什么修饰符?A) privateB) protectedC) publicD) 默认不写修饰符4. 下面哪种访问权限修饰符可以让子类访问父类的成员变量?A) privateB) protectedC) publicD) 默认不写修饰符5. 下面哪个关键字可以用来声明一个常量?A) constantB) finalC) staticD) default二、填空题1. 在Java中,可以通过____关键字来引入其他包中的类。

2. 在Java中,____关键字可以用来防止重写一个方法。

3. 在Java中,____关键字表示当前对象的引用。

4. 在Java中,____关键字用于表示父类。

三、编程题请编写一个Java类,实现一个矩形的类,要求具有以下功能:1. 拥有长度和宽度两个属性。

2. 拥有计算矩形面积的方法。

3. 能够输出矩形的属性信息。

```javapublic class Rectangle {private double length;private double width;public Rectangle(double length, double width) {this.length = length;this.width = width;}public double getArea() {return length * width;}public void printInfo() {System.out.println("Length: " + length);System.out.println("Width: " + width);}}```使用上述代码,可以创建一个矩形对象并调用相应方法来获取矩形的面积和属性信息。

java面向对象考题和答案

java面向对象考题和答案

1.下面代码的输出结果是:public class Main {public static void main(String[] args) { int n = 100;int m = 200;System.out.println(f(n,m));System.out.println(n);}public static int f(int m, int n) {n = m+n;return n;}}A.300300B.100100C.300100D.1003002.程序执行的结果是:public class Test {public static void main(String[] args) {int x = 6;Test p = new Test();p.doStuff(x);System.out.println(" main: x = " + x); }void doStuff(int x) {System.out.println(" doStuff:x =" + x++); }}A.doStuff:x =7main: x = 7B.doStuff:x =7main: x = 6C.doStuff:x =6main: x = 7D.doStuff:x =6main: x = 63.下列关于JVM的内存结构描述正确的是:A.类的各种信息在方法区中保存B.堆用于存放程序运行过程当中所有的局部变量C.栈用于存储使用new关键字创建的对象D.数组属于JVM的内存结构4.下列代码的输出结果是:public class Test {public void print(char c) {System.out.println("c");}public void print(int i) {System.out.println("i");}public void print(double d) {System.out.println("d");}public void print(String s) {System.out.println("s");}public static void main(String[] args) { Test test=new Test();test.print('5');}}A.cB.iC.dD.s5.程序执行的结果是:public class Test {String name="Tom";public Test(String name){name=name;}public static void main(String [] args){ Test t = new Test("Jack");System.out.println();}}A.nullB.TomC.JackD." "6.关于构造方法,下列说法错误的是:A.构造方法不可以进行方法重写B.构造方法用来实例化一个新的对象C.构造方法具有和类名相同的名称D.构造方法不返回任何数据类型7.关于 Java 中继承的特点,下列说法正确的是:A.使类的定义复杂化B.Java 只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的C.子类继承父类的所有成员变量和方法,包括父类的构造方法D.不可以多层继承,即一个类不可以继承另一个类的子类8.下列代码运行的结果是:class Foo {public int a;public Foo() {a = 3;}public void addFive() {a += 5;}}class Bar extends Foo {public int a;public Bar() {a = 8;}public void addFive() {this.a += 5;}}public class TestFoo {public static void main(String[] args) {Foo foo = new Bar();foo.addFive();System.out.println("Value: " + foo.a);}}A.Value: 3B.Value: 8C.Value: 13D.Value: 189.下列代码编译和运行的结果是:class Person {String name = "No name";public Person(String nm) {name = nm;}}class Employee extends Person {String empID = "0000";public Employee(String id) {empID = id;}}public class EmployeeTest {public static void main(String[] args) {Employee e = new Employee("4321");System.out.println(e.empID);}}A.输出:0000B.输出:4321C.代码public Employee(String id) {行,出现编译错误D.抛出运行时异常10.下列代码的运行结果是:public class Animal {public String noise() {return "peep";}public static void main(String[] args) {Animal animal = new Dog();Cat cat = (Cat)animal;System.out.println(cat.noise());}}class Dog extends Animal {public String noise() {return "bark";}}class Cat extends Animal {public String noise() {return "meow";}}A.peepB.barkC.meowD.抛出运行时异常11.下列代码编译和运行的结果是:public class A {public void start() {System.out.println("TestA");}}public class B extends A {public void start() {System.out.println("TestB");}public static void main(String[] args) {( (A) new B( ) ).start();}}A.输出:TestAB.输出:TestBC.输出:TestA TestBD.编译错误12.请看下列代码:class One {void foo() {}}class Two extends One {// insert method here}下列选项中的代码,放置在<插入代码>处无编译错误的是: A.int foo() { /* more code here */ }B. protected void foo() { /* more code here */ }C. public void foo() { /* more code here */ }D. private void foo() { /* more code here */ }13.下列选项中,不属于Java 的访问修饰符的是:A.privateB.protectedC.friendlyD.public14.下列代码的输出结果是:class Foo {private int x;public Foo(int x) {this.x = x;}public void setX(int x) {this.x = x;}public int getX() {return x;}}public class Gamma {static Foo fooBar(Foo foo) {foo = new Foo(100);return foo;}public static void main(String[] args) {Foo foo = new Foo(300);System.out.print(foo.getX() + "-");Foo fooFoo = fooBar(foo);System.out.print(foo.getX() + "-");System.out.print(fooFoo.getX() + "-");foo = fooBar(fooFoo);System.out.print(foo.getX() + "-");System.out.print(fooFoo.getX());}}A.300-100-100-100-100B.300-300-100-100-100C.300-300-300-100-100D.300-300-300-300-10015.下列代码运行的结果是:public class Base {public static final String FOO = "foo";16.class Sub extends Base {public static final String FOO = "bar";}public static void main(String[] args) {Base b = new Base();Sub s = new Sub();System.out.print(Base.FOO);System.out.print(Sub.FOO);System.out.print(b.FOO);System.out.print(s.FOO);System.out.print(((Base) s).FOO);}}A.foofoofoofoofooB.foobarfoobarbarC.foobarfoofoofooD.foobarfoobarfoo16.关于下列代码说法正确的是:public class ItemTest {private final int id;public ItemTest(int id) {this.id = id;}public void updateId(int newId) {id = newId;}public static void main(String[] args) {ItemTest fa = new ItemTest(42);fa.updateId(69);System.out.println(fa.id);}}A.编译错误B.运行时抛出异常C.运行后,fa对象属性id的值没有改变,应然是42D.运行后,fa对象属性id的值改变成新的值6917.请看下列代码编译和运行的结果是:public class Student {private String name="sun";public static void main(String[] args) {Student[] students=new Student[2];System.out.println(students[0].name);System.out.println(students.length);}}A.sun 2B.null 2C.null 1D.运行时抛出NullPointerException异常18.下列代码的输出结果是:abstract class Vehicle {public int speed() {return 0;}}class Car extends Vehicle {public int speed() {return 60;}}class RaceCar extends Car {public int speed() {return 150;}}public class TestCar {public static void main(String[] args) {RaceCar racer = new RaceCar();Car car = new RaceCar();Vehicle vehicle = new RaceCar();System.out.println(racer.speed() + ", " + car.speed() + ", " + vehicle.speed());}}A.0, 0,0B.150, 60, 0C.150, 150, 150D.抛出运行时异常19.请看下列代码:public abstract class Employee {protected abstract double getSalesAmount();public double getCommision() {return getSalesAmount() * 0.15;estA() {}}class Sales extends Employee {<插入代码>}在<插入代码>处填入的方法正确的是:A.double getSalesAmount() { return 1230.45; }B.public double getSalesAmount() { return 1230.45; }C.private double getSalesAmount() { return 1230.45; }D.protected double getSalesAmount() { return 1230.45; }20.关于下列代码说法正确的是:public interface A {public void doSomething(String thing);}public class AImpl implements A {public void doSomething(String msg) {}}public class B {public A doit() {return null;}public String execute() {return null;}}public class C extends B {public AImpl doit() {return null;}public Object execute() {return null;}}A. 所有类和接口都编译成功B.类B编译失败C.类Aimpl编译失败D.类C编译失败21.关于下列代码说法正确的是:interface A {public void aMethod();}interface B {public void bMethod();}interface C extends A, B {public void cMethod();}class D implements B {public void bMethod() {}}class E extends D implements C {public void aMethod() {}public void bMethod() {}public void cMethod() {}}A.编译失败B.如果定义D e = new E();, 那么 e.bMethod();调用D类的bMethod()方法C.如果定义D e = (D)(new E());, 那么 e.bMethod();调用D类的bMethod()方法D.如果定义D e = (D)(new E());, 那么 e.bMethod();调用E类的bMethod()方法22.请看下列代码:public class UserRequest {public void request(ServletAction action) {action.doService();}public static void main(String[] args) {UserRequest user = new UserRequest();user.request(new ServletAction() {public void doService() {System.out.println("处理请求");}});}}如果上述代码采用回调模式编写,下列关于ServletAction的定义正确的是:A. public static class ServletAction {public void doService();}B.public final class ServletAction {public void doService();}C.public class ServletAction {public void doService();}D. public interface ServletAction {public void doService();}23.下列代码运行的结果是:public class Hello {String title;int value;public Hello() {title += "World";}public Hello(int value) {this.value = value;title = "Hello";}public static void main(String[] args) { Hello c = new Hello(5);System.out.println(c.title);}}A.HelloB. Hello WorldC. Hello World 5D.运行后无输出24.请看下列代码编译和运行的结果是:interface TestA {String toString();}public class Test {public static void main(String[] args) {System.out.println(new TestA() {public String toString() {return "test";}});}}A.输出:testB.输出:nullC.代码System.out.println(new TestA() {行,编译出错D.代码public String toString() {行,编译出错25.请看下列代码:1)public class Outer {2) void fn(int i) {3) class Inner {4) void print() {5) System.out.println(i);6) }7) }8) Inner in = new Inner();9) in.print();10) }11)}12)class Test {13) public static void main(String args[]){14) Outer out=new Outer();15) out.fn(100);16) }17)}关于上述代码说法正确的是:A.在第5行出现编译错误,fn方法的参数必须用final修饰B.在第3行出现编译错误,在方法的内部不能写类C.在第8行出现编译错误,在方法的内部不能实例化Inner类的对象D.运行代码,控制台输出1002,正确答案:D 3,正确答案:A 4,正确答案:A 5,正确答案:B6,正确答案:B 7,正确答案:B 8,正确答案:A 9,正确答案:C 10,正确答案:D11,正确答案:B 12,正确答案:BC 13,正确答案:C 14,正确答案:B 15,正确答案:D16,正确答案:A 17,正确答案:D 18,正确答案:C 19,正确答案:BD 20,正确答案:D22,正确答案:D 23,正确答案:A 24,正确答案:A 25,正确答案:A。

JAVA面向对象程序设计(期末考试试题及答案)

JAVA面向对象程序设计(期末考试试题及答案)

JAVA面向对象程序设计(期末考试试题及答案)一、选择题(每题5分,共30分)1. 下列哪个不是Java基本数据类型?A. intB. charC. StringD. boolean答案:C2. 下列哪个操作符用于取模?A. %B. /C.D. &答案:A3. 下列哪个关键字用于定义接口?A. classB. interfaceC. extendsD. implements答案:B4. Java中,下列哪个方法可以实现字符串的截取?A. substring(int start, int end)B. substring(int start, int length)C. substring(int index)D. substring(int index, int length)答案:A5. 下列哪个方法用于判断字符串是否为空?A. isEmpty()B. isBlank()C. isEmptyD. isNull()答案:B6. 下列哪个方法用于获取字符串长度?A. length()B. lengthC. size()D. getSize()答案:A二、填空题(每题5分,共30分)1. 在Java中,所有的类都是_______类的子类。

答案:Object2. Java中定义接口时,需要使用_______关键字。

答案:interface3. 在Java中,定义抽象类时需要使用_______关键字。

答案:abstract4. Java中,字符串比较可以使用_______方法。

答案:equals()5. 在Java中,若要实现字符串的翻转,可以使用_______类。

答案:StringBuilder6. 下列哪个方法用于判断字符串是否以指定的字符串开头?答案:startsWith(String prefix)三、编程题(共40分)1. 编写一个Java程序,实现一个简单的计算器功能,包括加、减、乘、除四种运算。

java面向对象试题及答案

java面向对象试题及答案

java面向对象试题及答案一、选择题(每题2分,共20分)1. 在Java中,以下哪个关键字用于定义类?A. classB. structC. interfaceD. enum答案:A2. 以下哪个选项是Java中类的成员变量?A. 局部变量B. 实例变量C. 静态变量D. 全局变量答案:B3. 在Java中,构造方法的特点是什么?A. 必须有返回值B. 必须有返回类型C. 没有返回值D. 可以有任意返回类型答案:C4. 以下哪个关键字用于定义一个接口?A. classB. structC. interfaceD. enum答案:C5. 在Java中,以下哪个关键字用于实现多重继承?A. extendsB. implementsC. import答案:B6. 以下哪个关键字用于定义一个抽象类?A. abstractB. finalC. nativeD. strictfp答案:A7. 在Java中,以下哪个关键字用于定义一个静态方法?A. staticB. finalC. abstractD. synchronized答案:A8. 在Java中,以下哪个关键字用于定义一个私有方法?B. protectedC. publicD. default答案:A9. 在Java中,以下哪个关键字用于定义一个受保护的方法?A. privateB. protectedC. publicD. default答案:B10. 在Java中,以下哪个关键字用于定义一个公共方法?A. privateB. protectedC. publicD. default答案:C二、填空题(每题2分,共20分)1. 在Java中,一个类可以继承另一个类的______属性和方法。

答案:public2. Java中的构造方法必须与______同名。

答案:类名3. 在Java中,______关键字用于实现类的多态性。

答案:extends4. 在Java中,______关键字用于实现接口。

java面向对象程序设计考试题及答案

java面向对象程序设计考试题及答案

java面向对象程序设计考试题及答案一、选择题(每题2分,共10分)1. 在Java中,以下哪个关键字用于定义类的属性?A. staticB. finalC. privateD. public答案:C2. 以下哪个方法用于在Java中创建对象?A. newB. createC. makeD. construct答案:A3. 哪个关键字用于在Java中定义一个方法?A. functionB. methodC. defineD. procedure答案:B4. 在Java中,哪个关键字用于实现类的继承?A. extendsB. inheritC. deriveD. base答案:A5. Java中接口和抽象类的主要区别是什么?A. 接口没有构造方法,抽象类有B. 接口可以有实现,抽象类不能C. 接口不能有属性,抽象类可以D. 接口可以有私有方法,抽象类不可以答案:A二、填空题(每空1分,共10分)1. 在Java中,一个类可以继承另一个类的属性和方法,这种特性称为____。

答案:继承2. Java中,一个类只能继承一个父类,这是Java的____特性。

答案:单继承3. 当一个类实现了一个接口时,它必须实现接口中所有的____方法。

答案:抽象4. Java中,____关键字用于声明一个类是抽象的。

答案:abstract5. 在Java中,____关键字用于声明一个方法没有具体的实现。

答案:abstract三、简答题(每题10分,共20分)1. 请简述Java中封装的概念及其重要性。

答案:封装是面向对象编程中的一个核心概念,它指的是将对象的状态(属性)和行为(方法)结合在一起,并隐藏对象的内部实现细节。

封装的重要性在于它提高了代码的安全性和可维护性,使得对象的内部状态不会被外部代码随意访问和修改,从而保护了对象的完整性。

2. 描述Java中多态的概念及其作用。

答案:多态是面向对象编程中的一个特性,它允许不同类的对象对同一消息做出响应。

java面向对象练习题目

java面向对象练习题目

1. super()与this()的区别?2.作用域public,protected,private,以及不写时的区别?3.在JAVA中,如何跳出当前的多重嵌套循环?4. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?5.Overload和Override的区别。

Overloaded的方法是否可以改变返回值的类型?6. final类有什么特点?7.Java中的异常处理机制的简单原理和应用。

8.final, finally, finalize的区别?9.int 和 Integer 有什么区别?1、【练习题】构造方法与重载定义一个网络用户类,要处理的信息有用户ID、用户密码、email地址。

在建立类的实例时,把以上三个信息都作为构造函数的参数输入,其中用户ID和用户密码时必须的,缺省的email地址是用户ID加上字符串"@"2、【练习题】构造方法与重载、包编写Addition类,该类中应包含一组实现两数相加运算的重载方法。

实现加法运算的方法,应接受两个参数(即加数和被加数),方法将两个参数进行加法运算后,返回相加结果。

考虑可能针对不同的数据类型进行计算,重载一组方法,包括整型、长整型、浮点型、双精度浮点型、还有字符串。

在main方法中创建Addition类的实例,分别调用重载方法测试其效果。

应将Addition类打入到包中,以自己名字的拼音为包命名。

4、【练习题】构造方法与重载建立一个汽车类,包括轮胎个数,汽车颜色,车身重量等属性。

并通过不同的构造方法创建事例。

至少要求:汽车能够加速,减速,停车。

要求:命名规范,代码体现层次,有友好的操作提示。

5、【练习题】构造方法与重载创建一个类,为该类定义三个构造函数,分别执行下列操作:1、传递两个整数值并找出其中较大的一个值2、传递三个double值并求出其乘积3、传递两个字符串值并检查其是否相同4、在main方法中测试构造函数的调用6、【练习题】Static关键字与普通变量的区别:创建一个名称为StaticDemo的类,并声明一个静态变量和一个普通变量。

Java面向对象测试试题范本

Java面向对象测试试题范本

Java面向对象测试试题范本一、选择题(每题5分,共20分)1.下列关于面向对象编程的说法,错误的是:A. 面向对象编程将程序组织成若干个对象,并通过对象之间的交互来实现功能B. 面向对象编程提供了封装、继承和多态等特性C. 面向对象编程只能使用Java语言实现D. 面向对象编程使代码更易于理解、维护和复用2.下列选项中,可以用于实现继承关系的关键字是:A. implementB. extendC. abstractD. final3.在Java中,哪个访问修饰符表示的成员变量或方法可以被任意类访问?A. publicB. privateC. protected4.下列选项中,正确描述Java的多态性的是:A. 同一个方法可以有不同的参数个数和类型但不能同名B. 子类可以重写父类的方法C. 子类可以调用父类的方法D. 子类可以拥有父类的属性和方法二、编程题(60分)题目一:请设计一个名为Person的Java类,该类具有以下属性和方法:属性:姓名(name)、年龄(age)、性别(gender)方法:构造方法,用于初始化name、age和gender;getName(),返回姓名;getAge(),返回年龄;getGender(),返回性别。

请根据上述要求,在下面的代码框中完成Person类的编写:```javaclass Person {// 在这里添加属性和方法}```请编写一个名为Circle的Java类,该类具有以下属性和方法:属性:半径(radius)方法:构造方法,用于初始化radius;getArea(),返回圆的面积(公式:面积= π * 半径的平方);getPerimeter(),返回圆的周长(公式:周长= 2 * π * 半径)。

请根据上述要求,在下面的代码框中完成Circle类的编写:```javaclass Circle {// 在这里添加属性和方法}```题目三:请编写一个名为Rectangle的Java类,该类具有以下属性和方法:属性:宽度(width)、高度(height)方法:构造方法,用于初始化width和height;getArea(),返回矩形的面积(公式:面积 = 宽度 * 高度);getPerimeter(),返回矩形的周长(公式:周长 = 2 * (宽度 + 高度))。

java面向对象程序设计练习题(有答案)

java面向对象程序设计练习题(有答案)

满分:100 分姓名:班级:学号:1. 填空题 ( 5.0 分 )面向对象三大特征______ ______ ______正确答案:封装继承多态2. 填空题 ( 5.0 分 )使用static 修饰的变量称为静态变量,静态变量可以有两种访问方式,分别是对象名.静态变量名和______正确答案:类名.静态变量名3. 单选题 (4.0 分 )下面关于java 中类的说法哪个是不正确的A. 构造函数是类中的特殊方法B. 类一定要声明为public 的,才可以执行C. 在软件设计中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的属性(变量)和行为(方法)D. 一个java 文件中可以有多个class 定义(但只能有一个public 修饰的类)正确答案:B4. 单选题 ( 4.0 分 )关于类中可以包含的内容,如下说法错误的是()A. 类中可以包含属性和方法B. 类中可以直接包含代码块C. 类中可以嵌套定义类D. 类中不能包含其他类正确答案:D5. 单选题 ( 4.0 分 )构造方法是否可被重写和重载()A. 不能重写,可以重载B. 可以重写,不能重载C. 不能重写,不能重载D. 可以重写,可以重载正确答案:A6. 单选题 ( 4.0 分 )关于封装的好处,以下错误的是()A. 隐藏实现的细节B. 方便修改的实现C. 只能通过规定方法访问D. 实现代码复杂化正确答案:D7. 单选题 ( 4.0 分 )在Java 中,下面描述正确的是()A. 一个子类可以有多个父类,一个父类也可以有多个子类B. 一个子类可以有多个父类,但一个父类只可以有一个子类C. 一个子类只可以有一个父类,但一个父类可以有多个子类D. 以上说法都不对正确答案:C8. 单选题 ( 4.0 分 )Java 语言的类间的继承关系是A. 多重的B. 单继承C. 线程的D. 不能继承正确答案:B9. 单选题 ( 4.0 分 )以下关于this 和super 关键字的说法错误的是()A. this 关键字指向当前对象自身,super 关键字指向当前对象的直接父类B. 在main 方法中可以存在this 或者super 关键字,但不能同时存在。

java面向对象期末试题及答案

java面向对象期末试题及答案

java面向对象期末试题及答案一、选择题(共10题,每题2分,共20分)1. 下列选项中,不属于Java的基本数据类型的是:A) intB) doubleC) booleanD) String答案:D2. 下列选项中,哪个关键字表示一个类不能被继承:A) finalB) staticC) privateD) abstract答案:A3. 在Java中,抽象类的特点是:A) 可以直接实例化B) 可以包含具体方法C) 可以被继承D) 可以实现多重继承答案:C4. 下列选项中,哪个关键字表示一个方法可以被子类重写:A) staticB) finalC) privateD) abstract答案:D5. 在Java中,接口的特点是:A) 可以包含成员变量B) 可以被实例化C) 可以包含具体方法D) 可以被类直接继承答案:B6. 下列选项中,哪个关键字表示一个方法或类只能被同一个包内的其他类访问:A) protectedB) publicC) privateD) default答案:D7. 在Java中,多态的实现方式是通过:A) 继承B) 接口C) 抽象类D) 重载答案:A8. 下列选项中,哪个关键字表示一个方法可以在同一个类中多次定义,但参数列表必须不同:A) staticB) finalC) privateD) overloading答案:D9. 在Java中,使用关键字“this”表示的是:A) 调用当前对象的方法B) 调用父类的方法C) 调用子类的方法D) 调用类的静态方法答案:A10. 下列选项中,哪个关键字表示一个方法不能被子类重写:A) finalB) abstractC) privateD) protected答案:A二、填空题(共5题,每题4分,共20分)1. 在Java中,创建对象的关键字是________。

答案:new2. 在Java中,使用关键字________定义了一个类的成员变量只能被本类的方法访问。

java面向对象试题及答案

java面向对象试题及答案

JAVA面向对象一:填空1、_____ 是JVM自带的一个线程(自动运行着的程序),用于回收没有任何引用所指向的对象。

2、_____空间用于存储使用new关键字所创建的对象;_____空间用于存储程序运行时在方法中声明的所有的局部变量;_____用于存放类的信息(包括方法),方法有_____份。

3、面向对象三大特征:_____,_____,_____.4、下面是一个类的定义,请将其补充完整。

class _____ {String name;int age;Student( _____ s, int i) {name=s;age=i;}}5、Java 语言的接口是特殊的类,其中包含______常量和_______方法。

6.如果子类中的某个方法的名字、__________和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。

7. Java 仅支持类间的单重继承,接口可以弥补这个缺陷,支持_____重继承.8. 接口中所有方法均为________和________的。

9. Java语言中,表示一个类不能再被继承的关键字是________。

10.Java语言中,表示一个类A继承自父类B,并实现接口C的语句是_________________。

11、以下代码的输出结果是________________。

int i=9;char c=’a’;char d=(char)(c+i);System.out.println(d);12.继承主要强调子类在父类的基础上取”长”补”短”,而______主要强调的是类与类之间的传输13、我们在java程序中,把关键字________加到方法名称的前面,来实现子类调用父类的方法14.java语言中,调用方法时,参数传递是_____调用,而不是地址调用15.接口是一种只含有抽象方法或______的一种特殊抽象类16.abstract方法_______(不能或能)与final并列修饰同一个类17.创建一个类就是创建一个新的数据类型,而类在java中属于_____数据类型。

java面向对象试题及答案

java面向对象试题及答案

java面向对象试题及答案# Java面向对象试题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?- A. class- B. interface- C. enum- D. package答案:A2. 以下哪个是Java中的继承特性?- A. 一个类可以继承多个类- B. 类可以继承接口- C. 接口可以继承类- D. 接口可以继承多个接口答案:D3. 以下哪个是Java中封装的体现?- A. 使用public关键字- B. 使用private关键字- C. 使用static关键字- D. 使用final关键字答案:B4. 在Java中,哪个关键字用于实现多态?- A. abstract- B. final- C. override- D. implements答案:C5. 以下哪个是Java的构造方法的特点?- A. 可以有返回类型- B. 可以有多个同名的构造方法- C. 必须有返回类型- D. 必须与类名相同答案:D二、简答题1. 简述面向对象编程的三大特性,并给出Java中的例子。

面向对象编程的三大特性是封装、继承和多态。

- 封装:封装是将对象的实现细节隐藏起来,只暴露出一个可以被外界访问的接口。

例如,在Java中,可以通过使用private关键字来隐藏类的成员变量,只通过public方法来访问这些变量。

- 继承:继承允许新创建的类(子类)继承现有类(父类)的属性和方法。

例如,如果有一个`Animal`类,可以创建一个`Dog`类继承`Animal`类。

- 多态:多态允许同一个接口接受不同的数据类型。

在Java中,可以通过重写父类的方法来实现多态。

例如,`Animal`类有一个`makeSound()`方法,而`Dog`类可以重写这个方法来发出狗的叫声。

2. 解释Java中的接口和抽象类的区别。

接口和抽象类都是Java中实现抽象化的方式,但它们有以下区别: - 接口可以包含抽象方法和默认方法,但不能有具体实现。

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

1、面向对象编程的三大特性是()A) 封装,继承,多态B) 封装,重用,继承C) 继承,抽象,多态D) 封装,灵活,抽象2、下面关于构造方法的说法正确的是()(多选)A. 构造方法不能被继承B. 构造方法不能被重写C. 构造方法不能被重载D. 构造方法不能声明为private3、下面关于类的说法,不正确的是()A) 类是同种对象的集合和抽象B) 类属于Java语言中的引用数据类型C) 对象是类的实例D) 类就是对象4、封装性可以对类的成员进行访问级别控制,其中限制最严格的是()A) public B) privateC) default D) protected5、以下哪种类成员修饰符可以在不同包的子类中访问()A) static B) privateC) default D) protected6、Java语言中哪个包是被自动导入的()A) java.util B) ngC) java.default D) java.io7、有一个类MyClass,它的构造方法声明正确的是()A) void MyClass(int x) {...} B) Myclass(int x){...}C) public MyClass(int x){…} D) public void MyClass(int x){…}8、对下列程序说法正确的是()public class Test7{public static void main(String args[]){String s1 = "Hello world";String s2 = "Hello";s2 = s2 + " world";System.out.println(s1 == s2);}}A) true B) falseC) 编译错误D) Hello world9、在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用()关键字来声明父类的这些方法A) final B) abstractC) static D) void10、下面关于接口说法不正确的是( )A) 接口的所有方法都是抽象的B) 接口所有的方法一定都是public的C) 用于定义接口的关键字是implements D) 接口是一组行为的集合11、为了区分类中重载的同名不同方法,要求( )A) 参数的类型或个数不同B) 使用不同的参数名C) 修改访问权限D) 方法返回值数据类型不同12、如果子类覆盖了父类的一个public方法,则此方法在子类中可以使用什么修饰符()A) public B) public和protectedC) private D) 任何修饰符都可以,根据需要选用13、不能用在类上的修饰符是()A) final B) publicC) abstract D) protected14、下列程序段运行后,标准输出是( )public class TestEx{public static void main(String args[]){method();}static void method(){try{System.out.println("test");}finally{System.exit(0);//程序中止System.out.println("finally");}}}A) testB) finallyC) testfianllyD) 无法通过编译15、运行下面的程序时会产生什么异常( )public class TestEx{static public void main(String args[]){int x = 0;int y = 2/x;int z[] = {1, 2, 3, 4};int p = z[4];//越界,调用}}A) ArrayIndexOutOfBoundsExceptionB) NumberFormatExceptionC) ArithmeticExceptionD) ArithmeticException和ArrayIndexOutOfBoundsException16、关于异常,下列描述正确的是()A) try代码段和其后跟随的catch代码段之间可以有间隔代码B) 每个catch代码段声明其能处理的一种特定类型的异常C) finally代码段在异常出现的情况下不被执行D) finally代码段中不可以有try和catch代码段17、要将字符串"2008年8月8日20:00:00"解析成Date实例,SimpleDateFormat的格式模板应该是()A) yyyy-MM-dd hh:mm:ss B) yyyy-mm-dd HH:MM:SSC) yyyy年M月d日hh时mm分ss秒D) yyyy年M月d日hh:mm:ss18、关于集合框架,说法不正确的是()A) 与数组不同,集合框架是容量可变的容器B) 集合框架不能保存基本类型,但是可以将它们转换为包装类后保存C) 集合框架中的List, Set, Map接口都是Collection接口的子接口D) 集合类除了提供可变容量的存储外,还提供了对数据的算法19、对保存在List中的数据进行查找,方法不正确的是()A) 对元素进行遍历,依次比较B) 对内容有序的List可以进行二分法查找C) 调用indexOf方法查找D) 无论是否有序都可以用二分法查找,比线性查找快很多20、如果要按照特定顺序保存元素,应当使用的容器是()A) HashMap B) ArrayListC) JFrame D) TreeSet21、有一个名为myList的ArrayList实例,取得其最后一个元素的方法是()A) myList.get(0); B) myList.get(st());C) myList.get(myList.size()); D) myList.get(myList.size()-1);22、有一个名为myList的ArrayList实例,调用mylist.get(0)的结果是( )A) 正确取得其第一个元素B) 返回数字0C) 可能产生异常D) 以上都不正确23、当试图编译并运行下面程序时会出现什么结果()class A{public int getNumber(int a){return a+1;}}class B extends A{public int getNumber(int a, char c){return a+2;}public static void main(String[] args){B b=new B();System.out.println(b.getNumber(0));}}A) 编译错误B) 运行错误C) 1 D) 224、当编译并运行下面程序时会出现什么结果()public class MyAr{public static void main(String argv[]){int[] i = new int[5];System.out.println(i[5]);}}A) 编译出错B) 运行出错C) 输出0 D) 输出“null”25、要将内存中的一首MP3音乐的数据保存到磁盘上,应当使用什么流()A) FileWriter B) BufferedWriterC) FileOutputStream D) ObjectOutputStream26、将对象序列化,要实现哪个接口()A) Cloneable B) RunnableC) Serializable D) Comparator27、有以下Java程序代码,运行结果是()public class Test{public static String output=""; //134public static void foo(int i){try {if(i==1){throw new Exception();}output +="1";} catch(Exception e){output+="2";return;} finally{output+="3";}output+="4";}public static void main(String args[]){foo(0);foo(1);System.out.println(output);}}A) 1342 B) 123C) 134234 D) 1342328、在JAVA中,( )接口位于集合框架的顶层A) Collection B) CollectionsC) Map D) Set29、已定义两个接口B和C,要定义一个类同时实现这两个接口,正确的是()A) interface A extends B,C B) interface A implements B,CC) class A implements B,C D) class A implements B,implements C30、下面关于继承的叙述正确的是()(多选)A. 在JAVA里只允许单一继承B. 在JAVA里一个类只能实现一个接口C. JAVA可以多继承D. JAVA的单一继承避免了菱形继承的危险31、下面哪些接口直接继承自Collection接口()(多选)A.ListB.MapC.SetD.Iterator32、研究下面的JAVA代码,输出结果将是()public class TestException {public static void main(String[] args) {int a[] = {0,1,2,3,4};int sum=0;try{for(int i=0;i<6;i++){sum+=a[i];}System.out.println("sum="+sum);}catch(ng.ArrayIndexOutOfBoundsException e){ System.out.println("数组下标越界");}finally{System.out.println("程序结束");}}}A. 10 数组下标越界程序结束B. 10 程序结束C. 数组下标越界程序结束D. 程序结束33、研究下面的JAVA代码,输出结果将是()public class TestException {public static void main(String[] args) {try{System.out.println("hello,jr");System.exit(0);}finally{System.out.println("88");}}}A. hello,jrB. 88C. hello,jr后是88D. 不能编译34、研究下面的JAVA代码,输出结果将是()public class Test {String s = "nba";public void test(String s){System.out.println("s:"+s);System.out.println("this.s:"+this.s);this.s=s;System.out.println("s:"+s);System.out.println("this.s:"+this.s);}public static void main(String[] args) {new Test().test("cba");}}A. s:cba this.s:nba s:cba this.s:nbaB. s:nba this.s:nba s:nba this.s:nbaC. s:cba this.s:nba s:cba this.s:cbaD. s:nba this.s:cba s:cba this.s:cba35、给定JAVA代码如下,关于super的用法,以下描述正确的是()class C extends B{public C(){super();}}A、用来调用类B中定义的super()方法B、用来调用类C中定义的super()方法C、用来调用类B中的无参构造方法D、用来调用类B中第一个出现的构造方法4. 对于任意一个类,用户所能定义的构造方法的个数至多为。

相关文档
最新文档