Java面向对象测试试题(经典)
面向对象测试题及答案
![面向对象测试题及答案](https://img.taocdn.com/s3/m/75d90898d4bbfd0a79563c1ec5da50e2524dd12a.png)
面向对象测试题及答案一、选择题(每题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面向对象试题_百度文库](https://img.taocdn.com/s3/m/71f74c316c175f0e7cd1379e.png)
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面向对象编程练习题及答案](https://img.taocdn.com/s3/m/222ac514f6ec4afe04a1b0717fd5360cbb1a8d16.png)
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面向对象编程中接口与抽象类的区别,并给出使用场景。
2.Java面向对象知识测试 - 含答案
![2.Java面向对象知识测试 - 含答案](https://img.taocdn.com/s3/m/c6b89f6e0b1c59eef8c7b4a6.png)
单选题:(每道题目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面向对象试题及答案](https://img.taocdn.com/s3/m/da2835338f9951e79b89680203d8ce2f006665f1.png)
java面向对象试题及答案1. 试题一题目:什么是面向对象编程?请简要描述面向对象编程的优势和特点。
答案:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,将程序中的数据和操作数据的方法进行了封装,使得程序更加模块化和易于理解。
面向对象编程的主要特点包括封装、继承和多态。
封装使得数据和对数据的操作集中在一个对象中,可以隐藏内部实现细节,提供公共的接口进行访问,增加了程序的安全性和灵活性。
继承允许新建的类继承已有类的属性和方法,通过扩展和重写已有类的功能,减少了代码的重复性,提高了代码的复用和可维护性。
多态允许不同的对象对相同的消息作出不同的响应,通过接口和抽象类的使用,实现了更加灵活和可扩展的程序设计。
面向对象编程的优势包括了代码的重用性、可维护性、可扩展性和灵活性。
通过封装和继承的应用,可以减少代码重复,提高开发效率,并且通过多态的应用,可以实现程序的灵活性,方便后续的扩展和修改。
2. 试题二题目:什么是类?请简要描述类的特点和组成部分。
答案:类是面向对象编程中的核心概念,是对一类具有相同属性和行为的对象进行抽象和封装的模板。
类是用来创建对象的蓝图,可以通过实例化类来创建对象。
类的特点包括了封装、继承和多态。
类通过封装将属性和方法进行了封装,提供了公共的接口与外部进行交互,隐藏了内部实现细节。
继承允许新建的类继承已有类的属性和方法,在原有基础上进行修改和扩展。
多态允许不同的对象对相同的消息作出不同的响应,实现了程序的灵活性和可扩展性。
类的组成部分包括了属性(Field)和方法(Method)。
属性(也称为成员变量)用于描述对象的状态,可以是基本类型或其他类的对象。
方法用于描述对象的行为,可以是处理属性的操作,也可以是其他业务逻辑的实现。
3. 试题三题目:请简要解释传值和传引用的区别,并用代码示例说明。
答案:传值和传引用是在方法调用时,参数传递的两种方式。
java面向对象考题和答案
![java面向对象考题和答案](https://img.taocdn.com/s3/m/903752c04793daef5ef7ba0d4a7302768e996f81.png)
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面向对象测试试题](https://img.taocdn.com/s3/m/8114f604b207e87101f69e3143323968011cf426.png)
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面向对象试题集](https://img.taocdn.com/s3/m/3eddb824cd7931b765ce0508763231126edb7788.png)
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面向对象测试试题(经典)](https://img.taocdn.com/s3/m/8dd2314df121dd36a22d82ec.png)
《使用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面向对象试题及答案](https://img.taocdn.com/s3/m/c87768691ed9ad51f01df254.png)
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面向对象试题](https://img.taocdn.com/s3/m/a578313031126edb6f1a1077.png)
面向对象章节小结一.选择题1. 以下声明合法的是( )A. default String sB. public final static native int w()C. abstract double dD. abdtract final double hyperbolicCosine()2.public class Test{public static void main(String srgs[]){fliat t=9.0f;int q=6;System.out.println((t++)*(--q);}}输出为多少( )A)40 B)40.0 C)45.0 D)36.03.下列关于修饰符混用的说法,错误的是( )A. abstract不能与final并列修饰同一个类B. abstract类中不可以有private的成员C. abstract方法必须在abstract类中D. static方法中能处理非static的属性4.关于被保护访问控制符protected修饰的成员变量,以下说法正确的是( )A. 可以被三种类所引用: 该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B. 可以被两种类访问和引用: 该类本身、该类的所有子类C. 只能被该类自身所访问和修改D. 只能被同一个包中的类访问5.class A {public int i = 10;}class B extends A{public int i = 20;}public class Test{public static void main(String args[]){B b = new B();A a = b;System.out.println(b.i);System.out.println(a.i);}}输出为多少( )A.10 10B.10 20C.20 10D.20 206.在Java 中,能实现多重继承效果的方式是___。
Java面向对象测试试题模板
![Java面向对象测试试题模板](https://img.taocdn.com/s3/m/07f0d88659f5f61fb7360b4c2e3f5727a5e9240a.png)
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面向对象编程测试题](https://img.taocdn.com/s3/m/5086b1a5d0d233d4b14e693a.png)
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面向对象测试题(一)](https://img.taocdn.com/s3/m/65b5ccd6bcd126fff6050b2b.png)
1.封装:在淘宝网上,我们经常登录注册,在里面有一个用户User,User有用户名username,password,年龄age,性别sex,请使用封装将用户封装为一个完整的个体,运行结果如下:提示:(1)定义类,并对其进行封装,加入两个构造方法,添加加一个info的方法,返回void,输出用户信息(2)再定义一个类UserTest,测试输出注:注意修饰符,构造方法,注释等各个规范,否则扣分2.子类继承父类:每个人的名字都由名和字组成,中国人的名字是“名“+”字”,英国人的是”字”+“.”+”名”:有一个类英国人Englishman,里面有姓fristName,名lastName,有输出姓名的方法display(),还有一个类中国人Chinese,里面有姓fristName,名lastName,也有输出姓名的方法display(),还有一个普通类人类Person,有输出姓名的方法display()请使用面向对象+继承的思想完成结果图:提示:(1)定义一个父类Person,抽取子类共有的属性和方法(2)定义一个Englishman类,继承父类,并重写方法(3)定义一个Chinese类,继承父类,并重写方法(4)定义一个PersonTest类,用来做测试display输出姓名注:注意修饰符,构造方法,使用多态,注释的各个规范,否则扣分3.继承抽象类:定义一个抽象类机动车Motovercal,里面有车牌号no,类型type,价格price 属性,里面有一个show()方法是抽象方法,定义一个轿车Car类,他有特有的属性颜色color,有一个公共汽车Bus,他有特有属性座位数seatCount,实现如图功能:提示:(1)定义一个抽象类Motovercal,里面有属性车牌号no,类型type,价格price,里面有抽象方法show()(2)定义一个轿车Car类,继承Motovercal,他有特有的属性颜色color(3)定义一个轿车Bus类,继承Motovercal,他有特有的属性座位数seatCount(4)编写测试类MotovercalTest注:注意修饰符,构造方法,使用多态,注释的各个规范,否则扣分4.实现接口:定义一个接口Usb,里面有工作方法work(),定义一个Usb鼠标UsbMouse 和UsbKeyborder键盘,让两个Usb设备继承Usb接口,运行结果如下:提示:本题测试类UsbTest注:注意修饰符,构造方法,使用多态,注释的各个规范,否则扣分5.继承类并实现接口:马继承Animal,还能实现能飞的能力,简称飞马,运行结果如下:提示:(1)定义一个抽象类Animal,里面有name属性(2)定一个Flyable的接口,表示飞的能力,里面有飞fly()的方法,返回void(3)定义一个Horse类,让他继承抽象类Animal,并实现接口Flyable注:注意修饰符,构造方法,使用多态,注释的各个规范,否则扣分6.继承类,并实现多个接口,有一个父类Person,里面有姓名name和性别sex,年龄age 属性,还有一个抽象show方法(),定义一个能说的接口Sayable,定义一个能听的接口Hearable,还有一个能吃的接口Eatable,哑巴Dumb是不能说的,聋子Deaf是不能听到的,但他们都有姓名,年龄,性别,如何完成他们的关系,且运行结果如下:提示:(1)定义一个抽象类Person,里面有name,sax,age属性,并有show抽象方法(2)定义一个接口Sayable,里面有一个说say()的方法(3)定义一个接口Hearable,里面有一个听hare()的方法(4)定义一个接口Eatable,里面有一个吃eat()的方法(5)定义一个哑巴Dumb类,继承Person,并是实现Sayable,Eatable的接口(6)定义一个哑巴Deaf类,继承Person,并是实现Hearable,Eatable的接口(7)定义一个测试类PersonTest进行测试注:注意修饰符,构造方法,使用多态,注释的各个规范,否则扣分:定义一个父类Base,他里面有name属性,定义一个Child类,继承Base,他同样也有name 属性,使用父类类型子类对象测试一下如何调到子类的属性值提示:(1)定义一个父类Base,他里面有name属性(2)定义一个Child类,继承Base,他同样也有name属性(3)定义一个BaseTest类,测试使用父类类型,子类对象获取子类的属性值注:注意修饰符,构造方法,使用多态,注释的各个规范,否则扣分8.使用父类做参数:定一个接口Pen,里面有getType()方法,定义一个类铅笔pencil,定义一个类钢笔FountainPen,定义一个纸的接口Paper,里面有getSize()方法,定义A4paper类和B5paper类,定义一个文章类Articlescrap,如何让他组合笔和纸进行文章的书写提示:(1)定一个接口Pen,里面有getType()方法(2)定义一个类铅笔Pencil,实现接口Pen(3)定义一个类钢笔FountainPen,实现接口Pen(4)定义一个纸的接口Paper,里面有getSize()方法(5)定义A4paper类,实现接口Paper(6)定义B5paper类,实现接口Paper(7)定义一个文章Articlescrap类,里面有write方法,有两个参数笔和纸,返回void类型(8)定义一个ArticlescrapTest类进行测试注:注意修饰符,构造方法,使用多态,注释的各个规范,否则扣分9.使用父类做返回值:有一个抽象类Pet,里面有name,health,love的属性,还有eat的抽象方法,定义一个Dog,他特有strain的属性,Penguin他特有sex的属性,定义一个宠物工厂类PetFactory,他里面有一个方法getPet();当传入“小花”就返回一条小花的狗狗,当传入“QQ”就返回一个QQ的企鹅:(1)定义一个抽象类pet,里面有name,health,love的属性,还有eat的抽象方法,返回void(2)定义一个类Dog,,他特有strain的属性(3)定义一个类Penguin,他特有sex的属性(4)定义一个PetTest类,测试注:注意修饰符,构造方法,使用多态,注释的各个规范,否则扣分10. 豆豆家养了两只家禽Poultry,将其定义为接口:一只鸡Chicken,将其定义为类和一只鸭Duck(将其定义为类),在接口Poultry中有getName()的方法,实现执行结果如下:(1)写一个接口Poultry,他里面有方法getName(),返回String(2)写一个类Chicken,里面有name属性,实现接口Poultry(3)写一个类Duck,里面有name属性,实现接口Poultry(4)再写一个测试类PoultryTest,里面使用父类类型,子类对象,然后调getName()方法注:注意修饰符,构造方法,使用多态,注释的各个规范,否则扣分附加题:11.接口数组:定一个接口Pet,里面有getPrice的方法,定义一个Dog类,里面有price 属性,定一个Cat里面有price属性,让两个子类实现接口,在主方法中,定义5个宠物,让后统计他们的总价格,使用接口数组实现12.设计食草动物和食肉动物,食草动物GrazertAnimal吃的草,食肉动物MeatAnimal吃的其他动物,如兔子吃草,老虎可以吃兔子,老虎也可能会把老虎吃了,发挥想象如何设计实现上述的功能面向对象部分测试题考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。
java面向对象试题及答案
![java面向对象试题及答案](https://img.taocdn.com/s3/m/937a82727275a417866fb84ae45c3b3567ecddfa.png)
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面向对象试题及答案](https://img.taocdn.com/s3/m/0b0ffc3a49d7c1c708a1284ac850ad02de800796.png)
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)。
《使用实现面向对象编程》阶段测试-笔试试卷
一、选择题(共25题,每题4分,满分100分)
1) 在类中,使用以下()声明语句来定义公有的型常量。
A. = 100;
B. = 100;
C. = 100;
D. = 100;
2) 在中,下列关于方法重载的说法中错误的是()。
A. 方法重载要求方法名称必须相同
B. 重载方法的参数列表必须不一致
C. 重载方法的返回类型必须一致
D. 一个方法在所属的类中只能被重载一次
3) 给定代码如下所示,在横线处新增下列()方法,是对方法的重载。
{
( x, y, z) {}
}
A. ( x, y, z){ 0; }
B. ( x, y, z){ 0; }
C. ( x, z){ }
D. ( z, y, x){ }
4) 在中,下面对于构造函数的描述正确的是()。
A. 类必须显式定义构造函数
B. 构造函数的返回类型是
C. 构造函数和类有相同的名称,并且不能带任何参数
D. 一个类可以定义多个构造函数
5) 下面代码的运行结果是()。
{
; 名字
0; 健康值
; 性别
() {
= 10;
= "雄";
("执行构造方法。
");
}
() {
("企鹅的名字是" + +
",健康值是" + + ",性别是" + "。
");
}
([] ) {
= ();
();
}
}
A. 企鹅的名字是,健康值是10,性别是雄。
B. 执行构造方法。
企鹅的名字是,健康值是0,性别是。
C. 企鹅的名字是,健康值是0,性别是。
D. 执行构造方法。
企鹅的名字是,健康值是10,性别是雄。
6) 下列选项中关于中封装的说法错误的是()。
A. 封装就是将属性私有化,提供公有的方法访问私有属性
B. 属性的访问方法包括方法和方法
C. 方法用于赋值、方法用于取值
D. 类的属性必须进行封装,否则无法通过编译
7) 使用实现封装,第一步是修改属性可见性来限制对属性的访问,第二步是创建赋值和取值方法,用于对属性的访问,第三步应该是()。
A. 使用赋值和取值方法访问属性
B. 编写常规方法访问属性
C. 在赋值和取值方法中,加入对属性的存取限制
D. 编写方法创建对象,调用赋值和取值方法访问属性
8) 分析如下所示的代码,其中关键字的意思是()。
{
;
() {
;
}
( ) {
= ; 关键字所在的行
}
}
A. 属性
B. 类的内部指代自身的引用
C. 类的对象引用类的其他对象
D. 指所在的方法
9) 在中,以下程序编译运行后的输出结果为()。
{
x, y;
( x, y) {
= x;
= y;
}
([] ) {
1, 2;
1 = (3, 3);
2 = (4, 4);
(1 + 2);
}
}
A. 6
B. 3 4
C. 8
D. 7
10) 在语言中,下列关于类的继承的描述,正确的是()。
A. 一个类可以继承多个父类
B. 一个类可以具有多个子类
C. 子类可以使用父类的所有方法
D. 子类一定比父类有更多的成员方法
11) 中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是()。
A. C不仅继承了B中的公有成员,同样也继承了A中的公有成员
B. C只继承了B中的成员
C. C只继承了A中的成员
D. C不能继承A或B中的成员
12) 给定一个程序的代码如下所示,编译时,会出现以下()情况。
{
() { 第1行
0;
}
}
{
i;
() { 第2行
i % 9; 第3行
}
}
A. 编译通过
B. 在第1行引发编译错误
C. 在第2行引发编译错误
D. 在第3行引发编译错误
13) 给定如下一个源文件,编译并运行,以下结果正确的是()。
1 {
1( s){
(s);
}
}
2 1{
2(){
("2");
}
}
2 {
([] ) {
= ();
}
}
A. 编译错误:没有找到构造器()
B. 编译错误:没有找到构造器1()
C. 正确运行,没有输出值
D. 正确运行,输出结果为:2
14) 给定程序的代码如下所示,则编译运行该类的结果是()。
{
() {
("");
}
}
{
( s) {
(s);
}
([] ) {
= ("");
}
}
A. 输出:
B. 输出:
C. 输出:
D. 编译错误
15) 下列选项中关于中关键字的说法错误的是()。
A. 关键字是在子类对象内部指代其父类对象的引用
B. 关键字不仅可以指代子类的直接父类,还可以指代父类的父类
C. 子类可以通过关键字调用父类的方法
D. 子类可以通过关键字调用父类的属性
16) 分析如下所示的代码,则选项中的说法正确的是()。
{
;
( ){
= ;
}
}
{ 1
( ){ 2
""; 3
(""); 4
}
}
A. 第2行错误,类的构造函数中参数名称应与其父类构造函数中的参数名相同
B. 第3行错误,应使用关键字调用父类的属性,改为"";
C. 第4行错误,调用父类构造方法的语句必须放在子类构造方法中的第一行
D. 程序编译通过,无错误
17) 以下关于类说法错误的是()。
A. 一切类都直接或间接继承自类
B. 接口亦继承类
C. 类中定义了()方法
D. 类在包中)
18) 在中,多态的实现不仅能减少编码的工作量,还能大大提高程序的可维护性及可扩展性,那么实现多态的步骤包括以下几个方面除了()。
A. 子类重写父类的方法
B. 子类重载同一个方法
C. 定义方法时,把父类类型作为参数类型;调用方法时,把父类或子类的对象作为参数传入方法
D. 运行时,根据实际创建的对象类型动态决定使用哪个方法
19) 给定代码如下所示,则编译运行后,输出结果是()。
{
() {
(10%3);
}
}
{
() {
(10/3);
}
( []) {
p = ();
();
}
}
A. 1
B. 1.0
C. 3
D. 3.3333333333333335
20) 分析如下代码,如果想在控制台上输出“B类的()方法”,则在横线处应填入()。
A {
() {
("A类的()方法");
}
}
B A {
() {
("B类的()方法");
}
( []) {
}
}
A. A a = B();
();
B. A a = A();
();
C. B b = A();
();
D. B b = B();
();
21) 编译运行如下代码,输出结果是()。
{
(){
(" ");
}
}
{
(){
(" ");
}
}
{
([] ) {
();
();
}
}
A.
B.
C.
D. 编译错误
22) 下面关于接口的说法错误的是()。
A. 一个接口是一些方法特征的集合,但没有方法的实现
B. 接口中定义的方法在不同的地方被实现,可以具有完全不同的行为
C. 接口中可以声明私有成员
D. 接口不能被实例化
23) 在接口中定义常量,下面语法错误的是()。
A. = 1;
B. = 1;
C. = 1;
D. = 1;
24) 在接口中,下列选项中属于有效的方法声明是()。
A. ();
B. ();
C. (){}
D. ();
25) 给定如下程序代码,在横线处加入()语句,可以使这段代码编译通过。
{
( i);
}
{
( i){
i % 9;
}
([] ){
i = (20);
}
}
A. p = ();
B. p = ();
C. p = ();
D. p = ();
考试时间 50分钟。