Java面向对象测试试题

合集下载

面向对象测试题及答案

面向对象测试题及答案

面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。

2. 解释什么是多态,并给出一个Java中多态的例子。

3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。

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面向对象编程练习题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?A. structB. classC. interfaceD. enum2. Java中的继承是:A. 多重继承B. 单一继承C. 无继承D. 可选继承3. 以下哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. 所有选项都是4. 以下哪个不是Java对象的三个基本特征?A. 封装B. 继承C. 多态D. 线程5. 以下哪个方法用于获取对象的内存地址?A. hashCode()B. equals()C. getClass()D. toString()二、简答题1. 解释Java中的封装是什么,并给出一个封装的例子。

2. 描述Java中的继承是如何工作的,并给出一个继承的例子。

3. 解释Java中的多态性,并给出一个多态性的例子。

三、编程题1. 创建一个名为`Car`的类,它具有以下属性:- 品牌(String)- 型号(String)- 年份(int)并为这些属性提供getter和setter方法。

2. 创建一个名为`ElectricCar`的类,它继承自`Car`类,并添加以下属性:- 电池电量(int)实现`ElectricCar`类,并重写`toString()`方法,以显示电动汽车的详细信息。

3. 创建一个名为`VehicleTest`的类,它包含`main`方法。

在`main`方法中,创建`Car`和`ElectricCar`的实例,并打印它们的状态。

四、代码分析题1. 阅读以下Java代码片段,并解释它的作用:```javapublic class Person {private String name;private int age;public Person(String name, int age) { = name;this.age = age;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}```2. 阅读以下Java代码片段,并指出可能的错误:```javapublic class Animal {public void speak() {System.out.println("The animal makes a sound");}}public class Dog extends Animal {@Overridepublic void speak() {System.out.println("The dog barks");}}public class Cat extends Animal {@Overridepublic void speak() {System.out.println("The cat meows");}}public class TestAnimals {public static void main(String[] args) {Animal myDog = new Dog();Animal myCat = new Cat();myDog.speak();myCat.speak();}}```五、论述题1. 论述Java面向对象编程中接口与抽象类的区别,并给出使用场景。

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面向对象试题集1、面向对象编程的三大特性是()A)封装,继承,多态C)继承,抽象,多态B)封装,重用,继承D)封装,灵活,抽象2、下面关于构造方法的说法正确的是()(多选)A.构造方法不能被继承B.构造方法不能被重写C.构造方法不能被重载D.构造方法不能声明为private3、下面关于类的说法,不正确的是()A)类是同种对象的集合和抽象C)对象是类的实例B)类属于Java语言中的引用数据类型D)类就是对象4、封装性可以对类的成员进行访问级别控制,其中限制最严格的是()A)publicB)privateC)defaultD)protected5、以下哪种类成员修饰符可以在不同包的子类中访问()A)taticB)privateC)defaultD)protected6、Java语言中哪个包是被自动导入的()A)java.utilB)ngC)java.defaultD)java.io7、有一个类MyCla,它的构造方法声明正确的是()A)voidMyCla(int某){...}C)publicMyCla (int某){•••}8、对下列程序说法正确的是()B)Mycla(int某){...}D)publicvoidMyCla(int某){•••}publicclaTet7{publictaticvoidmain(Stringarg[]){String1=\String2=\2=2+\Sytem.out.println(1==2);}}A)trueB)faleC)编译错误D)Helloworld9、在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用()关键字来声明父类的这些方法A)finalB)abtractC)taticD)void10、下面关于接口说法不正确的是()A)接口的所有方法都是抽象的B)接口所有的方法一定都是public的C)用于定义接口的关键字是implementD)接口是一组行为的集合11、为了区分类中重载的同名不同方法,要求()A)参数的类型或个数不同B)使用不同的参数名C)修改访问权限D)方法返回值数据类型不同12、如果子类覆盖了父类的一个public方法,则此方法在子类中可以使用什么修饰符(A)publicB)public和protectedC)privateD)任何修饰符都可以,根据需要选用13、不能用在类上的修饰符是()A)finalB)publicC)abtractD)protected14、下列程序段运行后,标准输出是()publicclaTetE某{publictaticvoidmain(Stringarg[]){method();}taticvoidmethod(){try{Sytem.out.println(\}finally{Sytem.e某it(0);//程序中止Sytem.out.println(\}}}A)tetB)finallyC)tetfianllyD)无法通过编译15、运行下面的程序时会产生什么异常()publicclaTetE某{taticpublicvoidmain(Stringarg[]){int某=0;inty=2/某;intz[]={1,2,3,4};intp二z[4];//越界,调用}}A)ArrayInde某OutOfBoundE某ceptionB)NumberFormatE某ceptionC)ArithmeticE某ceptionD)ArithmeticE某ception和Arraylnde某OutOfBoundE某ception16、关于异常,下列描述正确的是()A)try代码段和其后跟随的catch代码段之间可以有间隔代码B)每个catch代码段声明其能处理的一种特定类型的异常C)finally代码段在异常出现的情况下不被执行D)finally代码段中不可以有try和catch代码段17、要将字符串\年8月8日20:00:00\解析成Date实例,SimpleDateFormat的格式模板应该是()A)yyyy-MM-ddhh:mm:C)yyyy年M月d日hh时mm分秒B)yyyy-mm-ddHH:MM:SSD)yyyy年M月d日hh:mm:18、关于集合框架,说法不正确的是()A)与数组不同,集合框架是容量可变的容器B)集合框架不能保存基本类型,但是可以将它们转换为包装类后保存C)集合框架中的Lit,Set,Map接口都是Collection接口的子接口D)集合类除了提供可变容量的存储外,还提供了对数据的算法19、对保存在Lit中的数据进行查找,方法不正确的是()A)对元素进行遍历,依次比较B)对内容有序的Lit可以进行二分法查找C)调用inde某Of方法查找D)无论是否有序都可以用二分法查找,比线性查找快很多20、如果要按照特定顺序保存元素,应当使用的容器是()A)HahMapB)ArrayLitC)JFrameD)TreeSet21、有一个名为myLit的ArrayLit实例,取得其最后一个元素的方法是()A)myLit.get(0);B)myLit.get(t());C)myLit.get(myLit.ize());D) myLit.get(myLit.ize()-1);22、有一个名为myLit的ArrayLit实例,调用mylit.get(0)的结果是()A)正确取得其第一个元素B)返回数字0C)可能产生异常D)以上都不正确23、当试图编译并运行下面程序时会出现什么结果()claA{publicintgetNumber(inta){returna+1;}}claBe某tendA{publicintgetNumber(inta,charc){returna+2;}publictaticvoidmain(String[]arg){Bb=newB();Sytem.out.println(b.getNumber(0));}}A)编译错误B)运行错误C)1D)224、当编译并运行下面程序时会出现什么结果()publicclaMyAr{publictaticvoidmain(Stringargv[]){int[]i=newint[5];Sytem.out.println(i[5]);}}A)编译出错B)运行出错C)输出0D)输出“null”25、要将内存中的一首MP3音乐的数据保存到磁盘上,应当使用什么流(A)FileWriterB)BufferedWriterC)FileOutputStreamD)ObjectOutputStream26、将对象序列化,要实现哪个接口()27、有以下Java程序代码,运行结果是()publicclaTet{publictaticStringoutput=\publictaticvoidfoo(inti){try{if(i==1){thrownewE某ception();})output+=\}catch(E某ceptione){output+=\return;}finally{output+=\}output+=\}publictaticvoidmain(Stringarg[]){foo(0);foo(1);Sytem.out.println(output);}}A)1342B)123C)134234D)1342328、在JAVA中,()接口位于集合框架的顶层A)CollectionB)CollectionC)MapD)Set29、已定义两个接口B和C,要定义一个类同时实现这两个接口,正确的是()A)interfaceAe某tendB,CC)claAimplementB,CB)interfaceAimplementB,CD)claAimplementB,implementC30、下面关于继承的叙述正确的是()(多选)A.在JAVA里只允许单一继承B.在JAVA里一个类只能实现一个接口C.JAVA可以多继承D.JAVA的单一继承避免了菱形继承的危险31、下面哪些接口直接继承自Collection接口()(多选)A.LitB.MapC.SetD.Iterator32、研究下面的JAVA代码,输出结果将是()publicclaTetE某ception{publictaticvoidmain(String[]arg){inta[]={0,1,2,3,4};intum=0;try{for(inti=0;i<6;i++){um+=a[i];}Sytem.out.println(\}catch(ng.ArrayInde某OutOfBoundE某ceptione){Sytem.out.println(\数组下标越界\}finally{ Sytem.out.println(\程序结束\}}}A.10数组下标越界程序结束B.10程序结束C.数组下标越界程序结束D.程序结束33、研究下面的JAVA代码,输出结果将是()publicclaTetE某ception{publictaticvoidmain(String[]arg){try{Sytem.out.println(\Sytem.e某it(0);}finally{Sytem.out.println(\}}}A.hello,jrC.hello,jr后是88B.88D.不能编译34、研究下面的JAVA代码,输出结果将是()publicclaTet{String=\publicvoidtet(String){Sytem.out.println(\Sytem.out.println(\thi.=;Sytem.out.println(\Sytem.out.println(\}publictaticvoidmain(String[]arg){newTet().tet(\}}A.:cbathi.:nba:cbathi.:nbaB.:nbathi.:nba:nbathi.:nbaC.:cbathi.:nba:cbathi.:cbaD.:nbathi.:cba:cbathi.:cba35、给定JAVA代码如下,关于uper的用法,以下描述正确的是()claCe 某tendB{publicC(){uper();}}A.用来调用类B中定义的uper()方法B、用来调用类C中定义的uper()方法C、用来调用类B中的无参构造方法D、用来调用类B中第一个出现的构造方法4.对于任意一个类,用户所能定义的构造方法的个数至多为A.0个B.1个C.2个D.任意个6.关于实例方法和类方法,以下描述正确的是:(D)A.实例方法只能访问实例变量B.类方法既可以访问类变量,也可以访问实例变量C.类方法只能通过类名来调用D.实例方法只能通过对象来调用7.接口是Java面向对象的实现机制之一,以下说法正确的是:A.Java支持多重继承,一个类可以实现多个接口;B.Java只支持单重继承,一个类可以实现多个接口;C.Java只支持单重继承,一个类只可以实现一个接口;D.Java支持多重继承,但一个类只可以实现一个接口。

Java面向对象测试试题(经典)

Java面向对象测试试题(经典)

《使用Java实现面向对象编程》阶段测试-笔试试卷一、选择题(共25题,每题4分,满分100分)1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。

A. public int MAX = 100;B. final int MAX = 100;C. public static int MAX = 100;D. public static final int MAX = 100;2) 在Java中,以下关于方法重载的说法中错误的是()。

A. 方法重载要求方法名称必须相同B. 重载方法的参数列表必须不一致C. 重载方法的返回类型必须一致D. 一个方法在所属的类中只能被重载一次3) 给定Java代码如下所示,在横线处新增以下()方法,是对cal方法的重载。

public class Test{public void cal(int x, int y, int z) {}}A. public int cal(int x, int y, float z){ return 0; }B. public int cal(int x, int y, int z){ return 0; }C. public void cal(int x, int z){ }D. public void cal(int z, int y, int x){ }4) 在Java中,下面对于构造函数的描述正确的是()。

A. 类必须显式定义构造函数B. 构造函数的返回类型是voidC. 构造函数和类有相同的名称,并且不能带任何参数D. 一个类可以定义多个构造函数5) 下面Java代码的运行结果是()。

class Penguin {private String name=null; // 名字private int health=0; // 健康值private String sex=null; // 性别public void Penguin() {health = 10;sex = "雄";System.out.println("执行构造方法。

java面向对象练习及答案

java面向对象练习及答案

一单选题第二次练习题1.Java为移动设备提供的平台是(A)A.J2MEB.J2SEC.J2EED.JDK5.02.使用Java语言编写的源程序保存时的文件扩展名是(B )A..classB..javaC..cppD..txt3.一个Java源程序为Test.java,编译该程序应该使用的命令为( B )。

A.javac TestB.javac Test.javaC.java TestD.java Test.java4下列哪个选项中对应的工具可以用来开发Java语言程序( B)A.Word2003B.JBuilderC.OutlookD.Excel20005 要开发Java程序,需要安装的开发包是 (A)A jdk B.eclipse C.notepad D.记事本6.下列不属于java语言鲁棒性特点的是 ( B )A. java能检查程序在变异和运行时的错B.java 能运行虚拟机实现跨平台C.java 自己操纵内存减少了内存出错的可能性D.java 还实现了真数组,避免了覆盖数据的可能7以下叙述正确的是 ( B )A.构造方法必须是public方法B.main方法必须是public方法C.Java应用程序的文件名可以是任意的D.构造方法应该声明为void类型8.构造方法何时被调用?( A )A.创建对象时B.类定义时C.使用对象的方法时D.使用对象的属性时9.下列关于构造方法描述错误的是( C )。

A.Java语言规定构造方法名与类名必须相同B.Java语言规定构造方法没有返回值,但不用void声明C.Java语言规定构造方法不可以重载D.Java语言规定构造方法只能通过new自动调用10.关于被私有访问控制符private修饰的成员变量,以下说法正确的是( C )。

A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B.可以被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问11.类与对象的关系是( A )。

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面向对象编程测试题
D)只要父类的方法能够被子类继承,子类就能重写这个方法
E)一旦子类重写了父类的方法,就表示隐藏了所继承的这个方法
(23)如何理解Object类。
A)Object类是所有类的超类
B)每当你创建一个对象,它都将拥有Object类中的全部方法
C)Java中的每一个类都是由Object扩展而来的
D)Object类中的equals方法用来判断两个对象是否相等
E)子类和父类不在同一个包中时,子类不能继承父类的私有成员和友好成员
(22)下面关于方法重写说法正确的是。
A)子类可以通过方法重写来隐藏继承的方法
B)方法重写是指,子类中类定义了一个方法,并且这个方法的名字、返回类型、参数类型及参数的个数与从父类继承的方法完全相同
C)通过方法重写,子类可以把父类的状态和行为变成自己的状态和行为
D)抽象类一般是用来定义抽象的实体的,而接口则是用来定义操作和行为的。
E)以上说法都正确。
(28)以下对于finally关键字说法正确的是。
A)finally是异常处理语句结构的一部分,表示无论什么情况都要执行的模块
B)finally语句的执行是一种无条件的操作,无论在什么哪种异常下都会执行。
E)一个Java源文件可以由若干个类构成的
(14)创建对象包括哪三个方面。
A)对象的声明
B)对象的实例化
C)对象的初始化
D)对象调用方法
E)对象调用变量
(15)下面对类变量和实例变量描述有误的是。
A)类变量是以关键字static为修饰词的成员变量
B)实例变量是以关键字static为修饰词的成员变量
C)类变量是不以关键字static为修饰词的成员变量
E)return

java面向对象试题及答案

java面向对象试题及答案

java面向对象试题及答案一、单选题(每题2分,共10分)1. 在Java中,下列哪个关键字用于定义一个类?A. classB. interfaceC. structD. enum答案:A2. Java中,哪个关键字用于定义一个私有方法?A. privateB. publicC. protectedD. default答案:A3. 下列哪个选项不是Java中的访问修饰符?A. privateB. publicC. protectedD. static答案:D4. 在Java中,哪个关键字用于实现多态?A. abstractB. finalC. staticD. interface答案:A5. 在Java中,下列哪个关键字用于定义一个接口?A. classB. interfaceC. structD. enum答案:B二、多选题(每题3分,共15分)1. 在Java中,下列哪些关键字用于定义一个类的方法?A. publicB. privateC. protectedD. static答案:A, B, C, D2. 下列哪些关键字用于实现类的继承?A. extendsB. implementsC. abstractD. final答案:A3. 在Java中,下列哪些关键字用于定义类的成员变量?A. privateB. publicC. protectedD. static答案:A, B, C, D4. 下列哪些关键字用于定义类的构造方法?A. constructorB. thisC. newD. super答案:B, D5. 在Java中,下列哪些关键字用于定义接口的常量?A. privateB. publicC. staticD. final答案:B, C, D三、判断题(每题2分,共10分)1. Java中,一个类可以继承多个类。

(错误)2. Java中,接口可以继承接口。

(正确)3. 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中实现抽象化的方式,但它们有以下区别: - 接口可以包含抽象方法和默认方法,但不能有具体实现。

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;}}编译运行,结果是()。

2.Java面向对象知识测试 - 含答案

2.Java面向对象知识测试 - 含答案

单选题:(每道题目2分)1:下列有关类、对象和实例的叙述,正确的是哪一项?()A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称2:类Student中成员变量声明正确的是哪一项? ()A.class Student{name;age;}B.class Student{String name = 1.0;int age = “26”;}C.class Student{String name;int age;}D.class Student{String name,int age;}3:类Student中成员方法声明正确是哪一项?()A:class Student{public show(){}}B:class Student{public void show();}C:class Student{public void show(){}}D:class Student{show(){}}4:类Student中构造方法声明正确的是哪一项? () A:class Student{public Student()}B:class Student{public Student(){}}C:class Student{public void Student(){}}D:class Student{new Student(){}}5:下列哪一项不是面向对象的三大特征之一? ()A:封装B:抽象C:继承D:多态6:下列关于封装说法不正确的是?()A:封装可以提高代码的安全性。

B:封装是指隐藏实现细节,提高公共的访问方式。

C:类或者方法也是封装的一种体现。

D:仅仅private修饰的内容才是封装的体现。

7:下列哪个方法和int sum(int a,int b)是重写方法?() A:public void sum(int a,int b)B:public int sum(int a,int b)C:int sum(int a,int b,int c)D:void sum(int c,int b)8:下列程序的运行结果是:()class Test{private static int x = 10;public void show(int x){x++;System.out.println(x);}public static void main(String[] args){int x = 20; //局部变量覆盖成员变量Test t = new Test();t.show(x);}}A:10B:21C:11D:209:在子类中调用父类中被重写的方法时需要使用哪个关键字?() A.thisB.newC.superD.以上都不是10:如果想一个类不能被子类继承的话,用下列哪个修饰符? () A:staticB:abstractC:privateD:final11:有如下两个类,在main方法中下面哪个做法是错误的?() class Animal{}class Dog extends Animal{}A:Animal a = new Animal();B:Dog d = new Dog();C: Animal a = new Dog();D:Dog d = new Animal();12:下列有关抽象类的叙述正确的是哪项?() A:抽象类中一定含有抽象方法B:抽象类既能被实例化也能被继承C:抽象类的声明必须包含abstract关键字D:抽象类中不能有构造方法13:下列有关接口的叙述错误的是哪项?() A:接口中只能包含抽象方法和常量B:一个类可以实现多个接口C:具体类实现接口时必须实现其中的方法D:接口不能被继承14:下列程序的运行结果是:()class Fu{public int num = 10;}class Zi extends Fu{public int num = 20;}class Testpublic static void main(String[] args) {Fu f = new Zi();System.out.println(f.num);Zi z = (Zi)f;System.out.println(z.num);}}A:10,10B:20,20C:10,20D:20,1015:下列程序的运行结果是:()class Fu{public void show(){System.out.println("fu show");}}class Zi extends Fu{public void show(){System.out.println("zi show");}public void method(){System.out.println("zi method");}}class Test{public static void main(String[] args){Fu f = new Zi();f.method();}}A:fu showB:zi showC:编译报错D:zi method16:关于代码块说法错误的是?()A:静态代码块在类加载的时候执行一次,在创建对象的时候不在执行了。

Java面向对象测试试题模板

Java面向对象测试试题模板

Java面向对象测试试题模板一、单项选择题(共10小题,每题2分,共20分)1. 问题一......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D2. 问题二......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D3. 问题三......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D4. 问题四......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D5. 问题五......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D6. 问题六......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D7. 问题七......................................a. 选项Ac. 选项Cd. 选项D8. 问题八......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D9. 问题九......................................a. 选项Ab. 选项Bc. 选项Cd. 选项D10. 问题十.....................................a. 选项Ab. 选项Bc. 选项C二、填空题(共5小题,每题4分,共20分)1. 下面的代码段中,用于创建一个对象的关键字是______。

2. 当一个子类继承自一个父类时,可以通过关键字______访问父类的方法和属性。

3. ______是一种将对象从内存中销毁的机制。

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

《使用Java实现面向对象编程》阶段测试-笔试试卷一、选择题(共25题,每题4分,满分100分)1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。

A. public int MAX = 100;B. final int MAX = 100;C. public static int MAX = 100;D. public static final int MAX = 100;2) 在Java中,下列关于方法重载的说法中错误的是()。

A. 方法重载要求方法名称必须相同B. 重载方法的参数列表必须不一致C. 重载方法的返回类型必须一致D. 一个方法在所属的类中只能被重载一次3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重载。

public class Test{public void cal(int x, int y, int z) {}}A. public int cal(int x, int y, float z){ return 0; }B. public int cal(int x, int y, int z){ return 0; }C. public void cal(int x, int z){ }D. public void cal(int z, int y, int x){ }4) 在Java中,下面对于构造函数的描述正确的是()。

A. 类必须显式定义构造函数B. 构造函数的返回类型是voidC. 构造函数和类有相同的名称,并且不能带任何参数D. 一个类可以定义多个构造函数5) 下面Java代码的运行结果是()。

class Penguin {private String name=null; 企鹅的名字是null,健康值是10,性别是雄。

B. 执行构造方法。

企鹅的名字是null,健康值是0,性别是null。

C. 企鹅的名字是null,健康值是0,性别是null。

D. 执行构造方法。

企鹅的名字是null,健康值是10,性别是雄。

6) 下列选项中关于Java中封装的说法错误的是()。

A. 封装就是将属性私有化,提供公有的方法访问私有属性B. 属性的访问方法包括setter方法和getter方法C. setter方法用于赋值、getter方法用于取值D. 类的属性必须进行封装,否则无法通过编译7) 使用Java实现封装,第一步是修改属性可见性来限制对属性的访问,第二步是创建赋值和取值方法,用于对属性的访问,第三步应该是()。

A. 使用赋值和取值方法访问属性B. 编写常规方法访问属性C. 在赋值和取值方法中,加入对属性的存取限制D. 编写main方法创建对象,调用赋值和取值方法访问属性8) 分析如下所示的Java代码,其中this关键字的意思是()。

public class Test {private String name;public String getName() {return name;}public void setName(String name) {= name; name属性B. Test类的内部指代自身的引用C. Test类的对象引用Test类的其他对象D. 指所在的方法9) 在Java中,以下程序编译运行后的输出结果为()。

public class Test {int x, y;Test(int x, int y) {= x;= y;}public static void main(String[] args) {Test pt1, pt2;pt1 = new Test(3, 3);pt2 = new Test(4, 4);+ ;}}A. 6B. 3 4C. 8D. 710) 在Java语言中,下列关于类的继承的描述,正确的是()。

A. 一个类可以继承多个父类B. 一个类可以具有多个子类C. 子类可以使用父类的所有方法D. 子类一定比父类有更多的成员方法11) Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是()。

A. C不仅继承了B中的公有成员,同样也继承了A中的公有成员B. C只继承了B中的成员C. C只继承了A中的成员D. C不能继承A或B中的成员12) 给定一个Java程序的代码如下所示,编译时,会出现以下()情况。

class Parent {public int count() { 编译通过B. 在第1行引发编译错误C. 在第2行引发编译错误D. 在第3行引发编译错误13) 给定如下一个Java源文件,编译并运行,以下结果正确的是()。

class Parent1 {Parent1(String s){}}class Parent2 extends Parent1{Parent2(){"parent2");}}public class Child extends Parent2 {public static void main(String[] args) {Child child = new Child();}}A. 编译错误:没有找到构造器Child()B. 编译错误:没有找到构造器Parent1()C. 正确运行,没有输出值D. 正确运行,输出结果为:parent214) 给定Java程序的代码如下所示,则编译运行该类的结果是()。

class Parent {Parent() {"parent");}}public class Child extends Parent {Child(String s) {}public static void main(String[] args) {Child child = new Child("child");}}A. 输出:childB. 输出:childparentC. 输出:parentchildD. 编译错误15) 下列选项中关于Java中super关键字的说法错误的是()。

A. super关键字是在子类对象内部指代其父类对象的引用B. super关键字不仅可以指代子类的直接父类,还可以指代父类的父类C. 子类可以通过super关键字调用父类的方法D. 子类可以通过super关键字调用父类的属性16) 分析如下所示的Java代码,则选项中的说法正确的是()。

class Parent{public String name;public Parent(String pName){= pName;}}public class Test extends Parent { 第2行错误,Test类的构造函数中参数名称应与其父类构造函数中的参数名相同B. 第3行错误,应使用super关键字调用父类的name属性,改为="hello";C. 第4行错误,调用父类构造方法的语句必须放在子类构造方法中的第一行D. 程序编译通过,无错误17) 以下关于Object类说法错误的是()。

A. 一切类都直接或间接继承自Object类B. 接口亦继承Object类C. Object类中定义了toString()方法D. Object类在包中)18) 在Java中,多态的实现不仅能减少编码的工作量,还能大大提高程序的可维护性及可扩展性,那么实现多态的步骤包括以下几个方面除了()。

A. 子类重写父类的方法B. 子类重载同一个方法C. 定义方法时,把父类类型作为参数类型;调用方法时,把父类或子类的对象作为参数传入方法D. 运行时,根据实际创建的对象类型动态决定使用哪个方法19) 给定Java代码如下所示,则编译运行后,输出结果是()。

class Parent {public void count() {}}public class Child extends Parent{public void count() {}public static void main(String args[]) {Parent p = new Child();();}}A. 1B.C. 3D. 3.20) 分析如下Java代码,如果想在控制台上输出“B类的test()方法”,则在横线处应填入()。

class A {public void test() {"A类的test()方法");}}class B extends A {public void test() {"B类的test()方法");}public static void main(String args[]) {}}A. A a = new B();();B. A a = new A();();C. B b = new A();();D. B b = new B();();21) 编译运行如下Java代码,输出结果是()。

class Base {public void method(){("Base method");}}class Child extends Base{public void methodB(){("Child methodB");}}class Sample {public static void main(String[] args) {Base base= new Child();();}}A. Base methodB. Child methodBC. Base method Child MethodBD. 编译错误22) 下面关于Java接口的说法错误的是()。

A. 一个Java接口是一些方法特征的集合,但没有方法的实现B. Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为C. Java接口中可以声明私有成员D. Java接口不能被实例化23) 在Java接口中定义常量,下面语法错误的是()。

A. static int MALE = 1;B. final int MALE = 1;C. int MALE = 1;D. private int MALE = 1;24) 在Java接口中,下列选项中属于有效的方法声明是()。

A. public void aMethod();B. void aMethod();C. void aMethod(){}D. private void aMethod();25) 给定如下Java程序代码,在横线处加入()语句,可以使这段代码编译通过。

interface Parent{public int count(int i);}public class Test implements Parent {public int count(int i){return i % 9;}public static void main(String[] args){________________int i = (20);}}A. Test p = new Test();B. Parent p = new Test();C. Parent p = new Parent();D. Test p = new Parent();考试时间 50分钟。

相关文档
最新文档