您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 2Java面向对象知识测试-含答案
单选题:(每道题目2分)1:下列有关类、对象和实例的叙述,正确的是哪一项?()A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称2:类Student中成员变量声明正确的是哪一项?()A.classStudent{name;age;}B.classStudent{Stringname=1.0;intage=“26”;}C.classStudent{Stringname;intage;}D.classStudent{Stringname,intage;}3:类Student中成员方法声明正确是哪一项?()A:classStudent{publicshow(){}}B:classStudent{publicvoidshow();}C:classStudent{publicvoidshow(){}}D:classStudent{show(){}}4:类Student中构造方法声明正确的是哪一项?()A:classStudent{publicStudent()}B:classStudent{publicStudent(){}}C:classStudent{publicvoidStudent(){}}D:classStudent{newStudent(){}}5:下列哪一项不是面向对象的三大特征之一?()A:封装B:抽象C:继承D:多态6:下列关于封装说法不正确的是?()A:封装可以提高代码的安全性。B:封装是指隐藏实现细节,提高公共的访问方式。C:类或者方法也是封装的一种体现。D:仅仅private修饰的内容才是封装的体现。7:下列哪个方法和intsum(inta,intb)是重写方法?()A:publicvoidsum(inta,intb)B:publicintsum(inta,intb)C:intsum(inta,intb,intc)D:voidsum(intc,intb)8:下列程序的运行结果是:()classTest{privatestaticintx=10;publicvoidshow(intx){x++;System.out.println(x);}publicstaticvoidmain(String[]args){intx=20;//局部变量覆盖成员变量Testt=newTest();t.show(x);}}A:10B:21C:11D:209:在子类中调用父类中被重写的方法时需要使用哪个关键字?()A.thisB.newC.superD.以上都不是10:如果想一个类不能被子类继承的话,用下列哪个修饰符?()A:staticB:abstractC:privateD:final11:有如下两个类,在main方法中下面哪个做法是错误的?()classAnimal{}classDogextendsAnimal{}A:Animala=newAnimal();B:Dogd=newDog();C:Animala=newDog();D:Dogd=newAnimal();12:下列有关抽象类的叙述正确的是哪项?()A:抽象类中一定含有抽象方法B:抽象类既能被实例化也能被继承C:抽象类的声明必须包含abstract关键字D:抽象类中不能有构造方法13:下列有关接口的叙述错误的是哪项?()A:接口中只能包含抽象方法和常量B:一个类可以实现多个接口C:具体类实现接口时必须实现其中的方法D:接口不能被继承14:下列程序的运行结果是:()classFu{publicintnum=10;}classZiextendsFu{publicintnum=20;}classTest{publicstaticvoidmain(String[]args){Fuf=newZi();System.out.println(f.num);Ziz=(Zi)f;System.out.println(z.num);}}A:10,10B:20,20C:10,20D:20,1015:下列程序的运行结果是:()classFu{publicvoidshow(){System.out.println(fushow);}}classZiextendsFu{publicvoidshow(){System.out.println(zishow);}publicvoidmethod(){System.out.println(zimethod);}}classTest{publicstaticvoidmain(String[]args){Fuf=newZi();f.method();}}A:fushowB:zishowC:编译报错D:zimethod16:关于代码块说法错误的是?()A:静态代码块在类加载的时候执行一次,在创建对象的时候不在执行了。B:构造代码块每次创建对象的时候都会执行。C:局部代码块是为了限定变量的生命周期。D:以上说法都不对17:Math类中的方法publicstaticintround(floatf),不能接受下面哪种类型的参数:A:byteB:intC:longD:double18:关于抽象类和接口,以下那个说法有问题:()A:一个类只能继承一个抽象类,但可以实现多个接口B:抽象类中可以没有抽象方法,接口中所有方法必须抽象C:抽象类中的方法默认是公有的,接口中方法默认是抽象的D:抽象类和接口都可以作为函数的形参类型使用,调用时传入子类对象19:关于内部类说法错误的是()A:内部类不能定义在局部位置。B:内部类可以定义在成员位置。C:成员内部类可以用private和static修饰。D:局部内部类只能访问被final修饰的局部变量。20:下列程序的运行结果是:()classA{publicvoidshow(){show2();}publicvoidshow2(){System.out.println(我);}}classBextendsA{publicvoidshow2(){System.out.println(爱);}}classCextendsB{publicvoidshow(){super.show();}publicvoidshow2(){System.out.println(你);}}publicclassForDemo{publicstaticvoidmain(String[]args){Aa=newB();a.show();Bb=newC();b.show();}}A:爱,你B:我,爱C:我,你D:我,我多选题:(每道题目3分)21:关于静态方法,以下说法正确的是()A、可以使用类名.方法名调用B、可以使用对象.方法名调用C、不能使用非静态成员D、可以使用静态成员和非静态成员22:关于继承,以下说法正确的是:A:Java中只支持单继承,一个类只能继承一个类,但是可以有多个直接子类B:一个类如果没有自己写无参构造方法,那么子类将无法继承C:子类实例可以当父类实例用,父类实例不可以当子类实例用D:子类重写父类方法时访问权限不能更低23:关于abstract不能和哪些关键字共用正确的是()A:abstract不可以和private共用B:abstract不可以和static共用C:abstract不可以和final共用D:abstract不可以和public共用24:下列有关抽象方法叙述正确的是哪几项?()A:包含抽象方法类的必须定义为抽象类B:抽象方法没有方法体C:抽象方法可以包含在任何类中D:包含抽象方法的类的具体子类必须提供具体的重写方法25:有如下代码,请问哪些是正确的?()classClassA{}classClassBextendsClassA{}classClassCextendsClassA{}以及ClassAp0=newClassA();ClassBp1=newClassB();ClassCp2=newClassC();ClassAp3=newClassB();ClassAp4=newClassC();A:p0=p1;B:p1=p2;C:p1=(ClassB)p3;D:p2=(ClassC)p4;简答题:(每道题目3分)(意思对即可给分)26:什么是面向对象?请举例说明。面向对象是相对于面向过程而言的一种思想,以对象为中心,强调某个对象可以完成某个功能,而不是像之前的面向过程的思想一样只强调如何去实现某个功能。他是一种更符合人们现实生活习惯的一种思想,让处理问题的过程变得清晰简单,也让程序员从执行者变成了指挥者。(2分)举例合适即可(1分)27:成员变量和局部的变量区别是什么?1.定义位置成员变量:定义在类中,方法外局部变量:定义在方法中,或者方法的形式参数2.存储位置成员变量:存储在堆中局部变量:存储在栈中3.初始化值成员变量:都有默认值局部变量:没有默认值,必须先声明,再赋值,后使用4.声明周期成员变量:随着对象的创建而存在,随着对象的消失而消失局部变量:随着方法的调用而存在,随着方法的调用完毕而消失(答出两点给1分,三点给3分,四点给3分)28:构造方法的特点是什么?需要注意什么问题?特点:(2分)1.方法名和类名相同。2.无返回值类型。3.无明确返回值。注意问题:(1分)1.如果不手动给出构造函数,系统会默认给出一个默认的无参构造;如果手动给出,系统就不会提供默认的无参构造建议永远手动写出无参构造29:方法重写是什么?需要注意什么问题?在子类中,存在与父类中方法声明(修饰符,返回值,方法名,参数列表)完全相同情况,就是方法重写(1分)注意问题:(2分)父类中私有方法不能被重写子类方法的访问权限一定大于等于父类访问权限静态只能重写静态30:抽象类和接口的区别是什么?1.成员不一样抽象类:可以有构造方法;可以有成员变量和量;可以有抽象和非抽象方法接口:没有构造函数;成员变量只能是静态常量;只有公共抽象方法(2分)2.关系不一样抽象类与类之间的关系是继承关系接口与类之间的关系是实现关系(1分)3.设计理念不一样抽象类是对于事物本质的抽象接口是对拓展功能的抽象(1分)编程题:(每道题目10分)31:写一个标准的学生类,包含如下内容:成员变量:name,age构造方法:无参构造,带两个参数的构造成员方法:getXxx()/setXxx()方法。show()方法用于显示类的成员变量值。publicclassStudent{privateStringname;(1分)privateintage;(1分)publicStudent(){}(1分)publicStudent(Stringname,intage){this.name=name;this.age=age;}(1分)publicStringgetName(){returnname;}(1分)publicvoidsetName(Stringname){this.name=name;}(1分)publicintgetAge(){returnage;}(1分)publicvoidsetAge(intage){this.age=age;}(1分)publicvoidshow(){System.out.println(name+***+age);}(2分)}32:请用代码体现把大象装进冰箱的操作。提示:注意分析该操作中有哪些类,每个类有哪些方法。然后在测试类中调用。//冰箱classFridge(1分){//开门publicvoidopen(){System.out.println(打开冰箱门);}(1分)//关门publicvoidclose(){System.out.println(关闭冰箱门);}(1分)}//大象classElephant(1分){publicvoidload(){System.out.println(装大象);}(1分)}//测试publicclassTest{public
本文标题:2Java面向对象知识测试-含答案
链接地址:https://www.777doc.com/doc-2914213 .html