您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 2Java面向对象知识测试_C卷
面向对象部分测试题考试宣言:同学们,考试考多少分不是我们的目的!排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了,那么不用怕,考完试后,导师讲解的时候你要注意听!那时候学会了,记住了,也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。1.下面描述函数重写错误的是A.要有继承或实现关系B.子类方法的权限必须大于等于父类的权限C.父类中被private权限修饰的方法可以被子类重写D.子类重写接口中的抽象方法,子类的方法权限必须是public的2.下列说法哪个正确?()A.一个程序可以包含多个源文件B.一个源文件中只能有一个公共类C.一个源文件中可以有多个类D.一个源文件只能供一个程序使用3.下面关于类的设计思路描述错误的是(C)A.根据需求写出类所包含的字段(成员变量)B.所有的字段都建议私有化C.封装之后的字段在本类内访问也必须使用get/set方法本类可以直接访问私有属性D.按需求可添加若干构造方法4.关于封装下面介绍错误的是(D)。A.封装将变化隔离B.封装提高重用性。C.封装提高安全性D.只有被private修饰才叫做封装Private只是封装的一种手段5.试图编译运行下面的代码会发生什么情况DpublicclassMyClass{staticinti;publicstaticvoidmain(String[]args){System.out.println(i);}}A.错误,变量i没有被初始化B.输出nullC.输出1D.输出0//成员变量有默认的初始化6.下面对static的描述错误的是BA.静态修饰的成员变量和成员方法随着类的加载而加载B.静态修饰的成员方法可以不用创建对象就能访问非晶态的成员变量//静态修饰的成员方法只能通过创建对象才能访问非静态成员变量C.静态修饰的成员可以被该类所有的对象所共享D.静态修饰的成员变量和成员方法随着类的消失而消失7.在Java中,下面对于构造函数的描述正确的是(D)。A.类必须显式定义构造函数//可以用无参构造访问,无参构造可以省略B.构造函数的返回类型是void//构造函数没有返回值类型C.构造函数和类有相同的名称,并且不能带任何参数//有参构造有参数D.一个类可以定义多个构造函数8.给定java代码,如下:BDabstractclassShape{abstractvoiddraw();}要创建Shape类的子类Circle,以下代码正确的是()。A.classCircleextendsShape{intdraw(){}}B.abstractclassCircleextendsShape{}//如果没有abstract编译会报错C.classCircleextendsShape{voiddraw();}D.classCircleextendsShape{voiddraw(){}}9.下面Java代码的运行结果是(C)。classPenguin{//下面还有注释的部分被称为属性,字段,成员变量privateStringname=null;//名字privateinthealth=0;//健康值privateStringsex=null;//性别publicvoidPenguin(){//不是构造方法,就算调用只会输出”执行构造方法”health=10;sex=雄;System.out.println(执行构造方法。);}publicvoidprint(){System.out.println(企鹅的名字是+name+,健康值是+health+,性别是+sex+。);}publicstaticvoidmain(String[]args){Penguinpgn=newPenguin();pgn.print();}}A.企鹅的名字是null,健康值是10,性别是雄。B.执行构造方法。企鹅的名字是null,健康值是0,性别是null。C.企鹅的名字是null,健康值是0,性别是null。D.执行构造方法。企鹅的名字是null,健康值是10,性别是雄。10.下面说法正确的是(ABCD)。A.final可修饰类、属性(变量)、方法B.abstract可修饰类、方法C.抽象方法只有方法声明,没有方法体D.关键字final和abstract不能同时使用11.下面说法正确的是(D)。A.匿名内部类编译后不会生成.class文件//会生成B.接口编译后不会生成.class文件//会生成C.抽象类中没有构造方法//也有构造方法,用于子类数据的初始化D.局部内部类只能访问被final修饰的局部变量。//注意是局部内部类12.类Student中构造方法声明正确的是哪一项?(B)A:classStudent{publicStudent()//没有语句体(也就是大括号)}B:classStudent{publicStudent(){}}C:classStudent{publicvoidStudent(){}//构造方法没有返回值类型}D:classStudent{newStudent(){}//构造方法必须与函数名相同}13.下面对static的描述正确的是ACDA.静态修饰的成员变量和成员方法随着类的加载而加载B.静态修饰的成员方法可以不用创建对象就能访问非晶态的成员变量//要通过创建对象C.静态修饰的成员可以被该类所有的对象所共享D.静态修饰的成员变量和成员方法随着类的消失而消失14.下面对this的作用描述错误的是DA.当成员变量和局部变量重名的时候可以用this区分B.this()语句必须放在构造函数的第一行,根据this后面括号中的参数调用本类其他的构造函数.C.this可以用来调用本类的一般方法D.this可以用来调用父类的一般方法//应该是super15.在Java中,以下程序编译运行后的输出结果为(D)。publicclassTest{intx,y;Test(intx,inty){this.x=x;this.y=y;}publicstaticvoidmain(String[]args){Testpt1,pt2;pt1=newTest(3,3);pt2=newTest(4,4);System.out.print(pt1.x+pt2.x);}}A.6B.34C.8D.716.关于abstract不能和哪些关键字共用正确的是(ABC)A.abstract不可以和private共用B.abstract不可以和static共用C.abstract不可以和final共用D.abstract不可以和public共用//可以共用17.给定一个Java程序Test.java的代码如下所示,编译时,会出现以下(A)情况。classParent{publicintcount(){//第1行return0;}}publicclassTestextendsParent{publicfloatcount(){//第2行return9;//第3行}}A.编译通过B.在第1行引发编译错误C.在第2行引发编译错误//子类继承父类的D.在第3行引发编译错误18.给定Java程序Child.java的代码如下所示,则编译运行该类的结果是(C)。classParent{Parent(){System.out.println(parent);}}publicclassChildextendsParent{Child(Strings){System.out.println(s);//}publicstaticvoidmain(String[]args){Childchild=newChild(child);}}A.childB.childparentC.parentchildD.编译错误19.下列选项中关于Java中super关键字的说法错误的是(B)。A.当子父类中成员变量重名的时候,在子类方法中想输出父类成员变量的值,可以用super区分子父类成员变量B.super语句可以放在构造函数的任意一行//必须放在第一行C.子类可以通过super关键字调用父类的方法D.子类可以通过super关键字调用父类的属性20.给定如下Java代码,以下(AB)方法可以加入Child类中。publicclassParent{intchange(){//此处省略N行代码}}ClassChildextendsParent{//(此处可以放入下面哪个选项)}A.publicintchange(){}B.intshow(inti){}C.privateintchange(){}//子类重写的方法的权限不能低于父类的权限D.abstractintchange(){}//当成员方法是抽象的,类必须定义为抽象的.21.分析如下所示的Java代码,则选项中的说法正确的是(C)。classParent{publicStringname;publicParent(StringpName){this.name=pName;}}publicclassTestextendsParent{//1publicTest(StringName){//2name=hello;//3super(kitty);//4}}A.第2行错误,Test类的构造函数中参数名称应与其父类构造函数中的参数名相同B.第3行错误,应使用super关键字调用父类的name属性,改为super.name=hello;C.第4行错误,调用父类构造方法的语句必须放在子类构造方法中的第一行D.程序编译通过,无错误22.下面关于Java接口的说法正确的是(ABD)。A.Java接口中定义的是扩展功能B.Java接口中可以被多个子类实现,一个类也可以同时实现多个接口C.Java接口中可以声明私有成员D.Java接口不能被实例化23.给出下面的不完整的类代码classPerson{Stringname,department;intage;publicPerson(Stringn){name=n;}publicPerson(Stringn,inta){name=n;age=a;}publicPerson(Stringn,Stringd,inta){//完成Person(Stringn,inta)的逻辑department=d;}}下面的哪些表达式可以加到构造方法中的注释处?(c)A.Person(n,a);B.this(Person(n,a));C.this(n,a);D.this(name,age);24.关于对象成员占用内存的说法哪个正确?(B)A.同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对25.给定Java代码如下所示,则编译运行后,输出结果是(C)。classParent{intmoney=5000;publicvoidcount(){System.out.println(10%3);}}publicclassChildextendsParent{Intmoney=10000;publicvoidcount(){System.out.println(10/3);}publicstaticvoidmain(Stringargs[]){Parentp=newChild();p.count();}}A.1B.1.0C.3D.3.333333333333333526.下面覆盖与重载的关系,说法正确的是(A)A、覆盖只有发生在父类与子类之间,而重载则发生在同一个类中B.覆盖方法可以不同名,而重载方法必须同名C.final修饰的方法可以被覆盖,但不能被重载D.覆盖与重载是同一回事27.查看下面代码:CclassA{publicinti=10;}classBextendsA{publicinti=20;}publicclass
本文标题:2Java面向对象知识测试_C卷
链接地址:https://www.777doc.com/doc-2914217 .html