Java面向对象测试题
Java面向对象测试
Java面向对象测试Java基础知识单元测试一、选择题(30分)1.下列程序段执行后的输出结果为()int x=3;int y=10;System.out.println(y%x);A.0B.1C.2D.32.下列程序的输出结果是()public class Test{void printValue(int m){do {System.out.println("The value is"+m); }while(--m > 10 );}public static void main(String arg[]){int i=10;Test t= new Test();t.printValue(i);}}A.8B.9C.10D.1133.执行完语句int []x = new int[25];后,则下列哪项说法是正确的()A.x[24]值为0B.x[24]值未定义C.x[25]值为0D.x[0]值为空4.下列哪个选项是合法的标识符()A)123B)_nameC)classD)1first5.下列的哪个赋值语句是不正确的()A)float f = 11.1;B)double d = 5.3E12;C)float d = 3.14f ;D)double f=11.1E10f;6.下列关于继承的哪项叙述是正确的?()A)在java中允许多继承B)在java中一个类只能实现一个接口C)在java中一个类不能同时继承一个类和实现一个接口D)java的单一继承使代码更可靠7.有一个类A,对于其构造函数的声明正确的是( )。
A)void A(int x){...} B)A(int x){...}C)A A(int x){...} D)int A(int x){...}8.一个可以独立运行的Java应用程序( ) **A、可以有一个或多个main方法B、最多只能有两个main方法C、可以有一个或零个main方法D、只能有一个main方法9.以下对Java中对数组的声明正确的是()**A int [] sample;B int sample[]C int () sample;D int sample();10.设int x = 3 , y = 2 , z = 5;则表达式y+=z--/++x 的值是( )。
java面向对象程序设计期末考试题及答案
java面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 在Java中,以下哪个关键字用于声明一个类?A. classB. interfaceC. structD. enum答案:A2. Java中的继承是?A. 单继承B. 多继承C. 无继承D. 混合继承答案:A3. 下列哪个是Java中的访问修饰符?A. privateB. protectedC. publicD. 以上都是答案:D4. Java中哪个关键字用于实现多态?A. abstractB. finalC. staticD. override答案:D5. Java中接口和抽象类的主要区别是?A. 接口可以有构造方法B. 抽象类可以有构造方法C. 接口不能有构造方法D. 抽象类不能有构造方法答案:C6. 在Java中,下列哪个是正确的方法重载?A. 方法名相同,参数列表不同B. 方法名不同,参数列表相同C. 方法名和参数列表都相同D. 方法名相同,返回类型不同答案:A7. 下列哪个不是Java的集合框架中的接口?A. ListB. SetC. MapD. Stream答案:D8. Java中,下列哪个是线程安全的单例模式实现?A. 懒汉式B. 饿汉式C. 双重检查锁定D. 以上都是答案:B9. Java中,下列哪个是正确的异常处理关键字?A. tryB. catchC. finallyD. 以上都是答案:D10. 在Java中,下列哪个是正确的泛型使用方式?A. List<String> list = new ArrayList<>();B. List list = new ArrayList<>();C. List<String> list = new ArrayList<Integer>();D. List list = new ArrayList<String>();答案:A二、填空题(每题2分,共20分)1. 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面向对象编程练习题及答案一、选择题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面向对象考试题及答案一、选择题(每题2分,共10分)1. 在Java中,以下哪个关键字用于定义一个类?A. classB. structC. interfaceD. enum答案:A2. 以下哪个选项是Java中类的成员变量?A. 方法B. 构造函数C. 属性D. 包答案:C3. 在Java中,哪个关键字用于实现类的继承?A. extendsB. implementsC. importD. package答案:A4. 在Java中,以下哪个关键字用于定义一个接口?A. classB. structC. interfaceD. enum答案:C5. 在Java中,以下哪个关键字用于定义一个枚举类型?A. classB. structC. enumD. interface答案:C二、填空题(每题2分,共10分)1. 在Java中,一个类可以继承另一个类的______方法。
答案:public2. 当一个类实现了一个接口,它必须提供接口中所有方法的______实现。
答案:具体3. Java中的______关键字用于定义一个包。
答案:package4. 在Java中,______关键字用于声明一个方法,该方法没有返回值。
答案:void5. 在Java中,______关键字用于声明一个方法,该方法返回一个布尔值。
答案:boolean三、简答题(每题5分,共20分)1. 简述Java中构造函数的作用。
答案:构造函数是类的特殊方法,用于在创建对象时初始化对象的状态。
它具有与类同名的名称,并且没有返回类型。
2. 描述Java中接口和抽象类的区别。
答案:接口是完全抽象的,不能包含任何实现细节,而抽象类可以包含实现细节。
接口中的方法默认是public和abstract的,而抽象类可以有非抽象方法。
一个类可以实现多个接口,但只能继承一个抽象类。
3. 什么是Java中的多态性?请举例说明。
答案:多态性是指允许不同类的对象对同一消息做出响应的能力。
java面向对象试题及答案
java面向对象试题及答案1. 试题一题目:什么是面向对象编程?请简要描述面向对象编程的优势和特点。
答案:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,将程序中的数据和操作数据的方法进行了封装,使得程序更加模块化和易于理解。
面向对象编程的主要特点包括封装、继承和多态。
封装使得数据和对数据的操作集中在一个对象中,可以隐藏内部实现细节,提供公共的接口进行访问,增加了程序的安全性和灵活性。
继承允许新建的类继承已有类的属性和方法,通过扩展和重写已有类的功能,减少了代码的重复性,提高了代码的复用和可维护性。
多态允许不同的对象对相同的消息作出不同的响应,通过接口和抽象类的使用,实现了更加灵活和可扩展的程序设计。
面向对象编程的优势包括了代码的重用性、可维护性、可扩展性和灵活性。
通过封装和继承的应用,可以减少代码重复,提高开发效率,并且通过多态的应用,可以实现程序的灵活性,方便后续的扩展和修改。
2. 试题二题目:什么是类?请简要描述类的特点和组成部分。
答案:类是面向对象编程中的核心概念,是对一类具有相同属性和行为的对象进行抽象和封装的模板。
类是用来创建对象的蓝图,可以通过实例化类来创建对象。
类的特点包括了封装、继承和多态。
类通过封装将属性和方法进行了封装,提供了公共的接口与外部进行交互,隐藏了内部实现细节。
继承允许新建的类继承已有类的属性和方法,在原有基础上进行修改和扩展。
多态允许不同的对象对相同的消息作出不同的响应,实现了程序的灵活性和可扩展性。
类的组成部分包括了属性(Field)和方法(Method)。
属性(也称为成员变量)用于描述对象的状态,可以是基本类型或其他类的对象。
方法用于描述对象的行为,可以是处理属性的操作,也可以是其他业务逻辑的实现。
3. 试题三题目:请简要解释传值和传引用的区别,并用代码示例说明。
答案:传值和传引用是在方法调用时,参数传递的两种方式。
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面向对象测试试题一、单选题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面向对象考题和答案
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面向对象试题集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面向对象一:填空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面向对象测试试题模板一、单项选择题(共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. ______是一种将对象从内存中销毁的机制。
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面向对象程序设计模拟试题2及答案
Java面向对象程序设计模拟试题2一、单项选择题(本大题共15小题,每小题1分,共15分)1.JVM是指A. Java开发工具B. Java虚拟机C. Java运行环境D. Java编程接口2.Java字节码文件的扩展名是A. cB. exeC. javaD. class3.在Java中,byte型变量所占的字节数是A. 1B. 2C. 4D. 84.给定下面代码段,输出j的值是多少int i = 1, j = 0 ;switch(i) {case 1:j += 6;case 2:j += 1;case 3:j += 2;}System.out.println(j);A. 2B. 6C. 7D. 95.给定下面代码段,程序运行结果是public class Test { static void leftshift(int i, int j){i <<= j;}public static void main(String[] args){ int i = 4, j = 2;leftshift(i,j);System.out.println("i = "+ i);}}A. i = 1B. i = 2C. i = 3D. i = 46.执行下列程序段后a和b的值为class AB{int a , b ;public void init(int x){a = x ;int b = 5 ;}public void display(){ System.out.println("a = "+a+" b = "+b);}}public class ABTest{public static void main(String[] args){AB ab = new AB();ab.init(6);ab.display() ;}}A. a = 5 b = 5B. a = 0 b = 0C. a = 6 b = 5D. a = 6 b = 07.下列程序段的运行结果为int [][]x ={{1,2},{3,4,5},{6,7,8,9}};int[][]y = x;System.out.println(y[2][1]);A. 3B. 4C. 6D. 78.执行下列语句后输出的结果是String s = "COMPUTER";System.out.println(s.indexOf(‘M’));A. 0B. 1C. 2D. 39.下面程序运行结果为class AA{AA(int a){System.out.print(a);}}class BB extends AA{BB(String s){super(88);System.out.print(s);}}public class ConstructorDemo{public static void main(String[] args){ BB b = new BB("hello");A. 该程序有编译错误B. 88helloC. hello88D. hello10.下面程序运行结果为class Super{public int i = 0;public Super(String text){ i = 1;}}public class Sub extends Super{ public Sub(Stringtext){ super“(”);i = 2;}public static void main(String[]args){ Sub sub = new Sub("Hello");System.out.println(sub.i);}}A. 该程序有编译错误B. 编译成功输出0C.编译成功输出1D.编译成功输出211.下面代码在运行时会产生什么异常int m = 100;System.out.println(m / 0);A. ClassNotFoundExceptionB. MathExceptionC. ArithmeticExceptionD. NullPointerException12.有下列一段代码,执行后输出结果为。
JAVA面向对象编程测试题
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面向对象知识测试
单选题:(每道题目2分)1:下列有关类、对象和实例的叙述,正确的是哪一项?(d)A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称类:相关的一组属性和行为的抽象的集合体。
对象:该类事物的具体存在。
实例:就是对象的另外一个名称。
2:类Student中成员变量声明正确的是哪一项? (c)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;}类的成员变量:A:变量的定义格式。
B:成员位置。
3:类Student中成员方法声明正确是哪一项?(c) A:class Student{public show(){}}B:class Student{public void show();}C:class Student{public void show(){}}D:class Student{show(){}}类的成员方法:A:方法的定义格式。
B:成员位置。
4:类Student中构造方法声明正确的是哪一项? (c)A:class Student{public Student()}B:class Student{public Student(){}}C:class Student{public void Student(){}}D:class Student{new Student(){}}类的构造方法:A:构造方法的格式及特点。
B:成员位置。
5:下列哪一项不是面向对象的三大特征之一? (b) A:封装B:抽象C:继承D:多态6:下列关于封装说法不正确的是?(d)A:封装可以提高代码的安全性。
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java面向对象测试题(一)注:测试时间:3小时编程题在电脑上编写,保存在已学生名字为文件名的文件夹中一、选择题(共30分,每题1分<多选、少选、错选不得分>)1、下面有关Java异常处理模型的说法错误的是()。
a)一个try块只能有一条catch语句b)一个try块中可以不使用catch语句c)Catch块不能单独使用,必须始终与try块在一起d)Finally块不能单独使用,必须始终与try块在一起2、下列选项中关于Java中super关键字的说法错误的是()。
a)super关键字是在子类对象内部指代其父类对象的引用b)super关键字不仅可以指代子类的直接父类,还可以指代父类的父类c)子类可以通过super关键字调用父类的方法d)子类可以通过super关键字调用父类的属性3、下列选项中关于Java中this关键字的说法错误的是()。
a)this是在对象内部指代对象自身的引用b)this关键字可以在类中的任何位置使用c)this只和特定的对象关联,而不和类关联d)同一个类的不同对象有不同的this4、在Java中,Object类是所有类的父亲,用户自定义类默认扩展自Object类,下列选项中的()方法不属于Object类的方法。
a)equals(Object obj)b)getClass()c)toString()d)trim()5、给定如下Java代码,关于super的用法,以下描述正确的是()。
class C extends B{public C(){super();}}a)用来调用类B中定义的super()方法b)用来调用类C中定义的super()方法c)用来调用类B的无参构造方法d)用来调用类B中第一个出现的构造方法6、在Java中,有如下两个类Student和Person。
如果Student是Person的子类,则下列声明对象x的语句中错误的是()。
a)Person x = new Student()b)Person x = new Person()c)Student x = new Person()d)Student x = new Student()7、下列对Java中的继承描述错误的说法是()。
a)子类至少有一个基类b)子类可作为另一个子类的基类c)子类可以通过this关键字来访问父类的私有属性d)子类继承父类的方法访问权限保持不变8、Try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行?a)不会执行b)会执行,在return前执行c)会执行,在return后执行d)会执行,可能在return前执行,也可能在return后执行9、下列属于方法重载好处的是()。
<选择两项>a)实现多态b)方法名的复用c)提高程序运行速度d)使用方便,提高可读性10、面向对象方法的多态性是指()。
a)一个类可以派生出多个特殊类b)一个对象在不同的运行环境中可以有不同的变体c)拥有相同父类或接口的不同对象可以以适合自身的方式处理同一件事d)一个对象可以是由多个其他对象组合而成的11、Dog是Animal的子类,下面代码错误的是()。
a)Animal a = new Dog();b)Animal a = (Animal)new Dog();c)Dog d = (Dog)new Animal();d)Object o = new Dog();12、下面定义Java的常量,正确的是()。
<多选>a)public static final double PI = ;b)public final static double PI = ;c)final public static double PI = ;d)static public final double PI = ;13、这段代码的输出结果是()。
try{return;}catch(Exception e){14、这个方法的返回值是()。
Public int count(){try{return 5/0;}catch(Exception e){return 2*3;}finally{return 3;}}a)0b)6c)3d)程序错误15、下面代码的运行结果是()。
public class Car{public void run(){汽车在跑”);}}public class Benz extends Car{public void run(){奔驰在跑”);}}public static void main(String[] args){Car car = (Car)(new Benz());();}a)汽车在跑b)奔驰在跑c)无法编译d)运行时将抛出异常16、下面的异常处理代码的输出结果是()public static void main(String[] arg){try{int result = 6/0;"try,");} catch(ArithmeticException e1) {"ArithmeticException异常,");throw new Exception();} catch(Exception e2) {"Exception异常,");} finally {"finally");}}a)程序编译错误b)ArithmeticException异常,finallyc)ArithmeticException异常, Exception异常, finallyd)try, ArithmeticException异常, Exception异常, finally17、关于Java的接口,下面说法错误的是()a)可以被继承b)可以只定义常量,而没有任何方法c)可以这样定义常量: public int EVEREST = 8848;d)方法的参数不可以是接口18、能与public void methodA(){ }方法形成重载的有()。
a)private void methodA(){ }b)private int methodA(){ return 1;}c)public void methodA(int a){ }d)public void methodA() throws Exception{ }19、子类中能与父类public void methodA(int a){ }方法形成重写的有()。
a)public int methodA(int a){return 1;}b)public void methodA(int a) throws Exception{ }c)private void methodA(int a){ }d)public void methodA(int b){ }20、关于构造方法,下面说法错误的是()<选择两项>a)父类只有一个带参的构造方法,子类必须显示声明带参构造方法b)子类无参构造方法中没有写super();不会调用父类无参构造方法c)子类无参构造方法不可以用super(int a);调用父类对应的带参构造方法d)实例化一个类的对象时,一定会先调用的构造方法21、关于Java的异常和异常处理,下面说法错误的是()。
<多选>.a)try/catch/finally块里都可以嵌套try/catch/finallyb)一个try可以对应多个catchc)如果发生的异常没有被捕捉,异常将被系统忽略d)异常处理时可以只用try块。
22、关于Java的继承,下面说法错误的是()<多选>a)接口可以继承接口b)子类不可以继承父类的私有属性和私有方法c)所有类都是的子类,但是不可以这样写:public class Earthextends Object{}d)一个类不可以继承(extends)另一个类,同时又实现(implements)一个接口23、阅读下面的代码,正确的说法是()Class Foo {int num;Baz comp = new Baz();}class Bar {Boolean flag;}class Baz extends Foo {Bar thing = new Bar();double limit;}a)Bar是Baz子类b)Foo 包含 Barc)Baz是Foo子类d)Foo是Baz子类e)Baz包含Bar24、作为Java应用程序入口的main方法,其声明格式是()A.public static int main(String args[])B.public static void main(String args[])C.public void main(String args[])D.public int main(String args[])25、下面命令正确的是()A.java B.java AppFirstC.java D.javac AppFirst26、下面哪个单词是Java语言的关键字()A.False B.FOR C.For D.for27、执行下面程序后,哪个结论是正确的()int a, b, c;a=1; b=3; c=(a+b>3 ? ++a : b++);A.a的值为2,b的值为3,c的值为1B.B.a的值为2,b的值为4,c的值为2C.a的值为2,b的值为4,c的值为1D.a的值为2,b的值为3,c的值为228、设有定义语句“int a[]={66,88,99};”,则以下对此语句的叙述错误的是()A.定义了一个名为a的一维数组 B.a数组有3个元素C.a数组的元素的下标为1~3 D.数组中的每个元素是整数29、下列类的声明中不合法的是。
A.class People(){…}B.class 植物{…}C.class A{…}D.public class 共有类{…}30、在JAVA 中,下列说法正确的是:。
A.一个子类可以有多个父类,一个父类也可以有多个子类B.一个子类可以有多个父类,但一个父类只可以有一个子类C.一个子类只可以有一个父类,但一个父类可以有多个子类D.上述说法都不对二、分析下列程序(共20分,每题2分)1、class Aclass{Aclass(){class Bclass extends Aclass{public Bclass(){super();public static void main(String[] args){Aclass a = new Aclass();Aclass a1 = new Bclass();}该程序的运行结果()2、Class Super{public int i=0;//有参数构造方法,无参数构造方法自动消失public Super(String text){i = 1;}}public class Sub extends Super{public Sub(String text){i=2;}public static void main(String[] args){ Sub sub = new Sub(“Hello”);该程序的结果是()。