您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > JAVA考核题-面向对象选择题(答案)
技术改变世界创新驱动发展您的未来就是我们的未来北润JAVA考核-面向对象第一部分英语测试(每题分,共分)第二部分知识点测试(分)一、选择题(每题2分,共110分)1.下面关于变量及其作用范围的陈述哪个是不对的?(B)A.实例变量是类的成员变量。B.实例变量用关键字static声明。C.在方法中定义的局部变量在该方法被执行时创建。D.局部变量在使用前必须被初始化。2.下面哪条语句把方法声明为抽象的公共方法?(B)A.publicabstractmethod();B.publicabstractvoidmethod();C.publicabstractvoidmethod(){}D.publicvoidmethod()extendsabstract;3.若在某一个类定义中定义有如下的方法:finalvoidaFinalFunction(){}则该方法属于(C)。A、本地方法B、静态方法C、最终方法D、抽象方法4.main方法是JavaApplication程序执行的入口点,关于main方法的方法头以下哪项是合法的(B)。A、publicstaticvoidmain()B、publicstaticvoidmain(String[]args)C、publicstaticintmain(String[]args)D、publicvoidmain(Stringarg[])5.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为(C)。A、隐藏B、覆盖C、重载D、Java不支持此特性6.下列关于构造方法的叙述中,错误的是(C)A.Java语言规定构造方法名与类名必须相同B.Java语言规定构造方法没有返回值,但不用void声明C.Java语言规定构造方法不可以重载D.Java语言规定构造方法只能通过new自动调用技术改变世界创新驱动发展您的未来就是我们的未来7.关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C)A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B.可以被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问8.类Test1定义如下:1.publicclassTest1{2.publicfloataMethod(floata,floatb){}3.4.}将以下哪种方法插入行3是不合法的。(B)A、publicfloataMethod(floata,floatb,floatc){}B、publicfloataMethod(floatc,floatd){}C、publicintaMethod(inta,intb){}D、privatefloataMethod(inta,intb,intc){}9.阅读以下代码:publicclassfoo{publicstaticvoidmain(String[]args){Strings;System.out.println(s=+s);}}输出结果应该是:(C)A.代码得到编译,并输出“s=”B.代码得到编译,并输出“s=null”C.由于Strings没有初始化,代码不能编译通过D.代码得到编译,但捕获NullPointException异常解析:局部变量必须显示的初始化。引用类型变量初始化时如果没有具体对象引用,可技术改变世界创新驱动发展您的未来就是我们的未来以初始化为null。10.下述概念中不属于面向对象这种编程范畴的是(D)。A.对象、消息B.继承、多态C.类、封装D.过程调用11.编译并运行以下程序,以下描述哪个选项是正确的(A)。1.classA{2.protectedStringtoString(){3.returnsuper.toString();}4.}A、行2出错,不能成功编译B、编译通过但运行时出错C、编译通过运行无异常D、不能成功编译,行3出错解析:方法重写时没有满足访问权限控制符要比父类的大或者相同。12.假设Foo类有如下定义,设f是Foo类的一个实例,下列语句调用哪个是错误的?(A)publicclassFoo{inti;staticStrings;voidimethod(){}staticvoidsmethod(){}}A、Foo.imethod();B、f.imethod();C、System.out.println(f.i);D、Foo.smethod()13.以下哪个接口的定义是正确的?(D)A、interfaceA{voidprint(){};}B、abstractinterfaceA{voidprint();}C、abstractinterfaceAextendsI1,I2//I1、I2为已定义的接口{abstractvoidprint(){};}D、interfaceA技术改变世界创新驱动发展您的未来就是我们的未来{voidprint();}解析:接口定义时语法规定上是不需要加abstract的,因为接口本身就是abstract的,java编译器在编译接口时会自动加上abstract。但是我们显示的加上abstract是不会出现问题,不建议加。此处选项B和C可以认为不正确。14.关于以下程序段,正确的说法是(C)1.Strings1=“a”+“b”;2.Strings2=newString(s1);3.if(s1==s2)4.System.out.println(“==issucceeded”);5.if(s1.equals(s2))6.System.out.println(“.equals()issucceeded”);A.行4与行6都将执行B.行4执行,行6不执行C.行6执行,行4不执行D.行4、行6都不执行15.下面程序运行结果为:(D,如果输出count则为A)publicclasstest3{publicstaticvoidmain(Stringargs[]){intcount=0;for(inti=0;i=100;i++)count+=count++;}}A0B7C编译有错误D其他答案16.下面哪个函数是publicvoidaMethod(){...}的重载函数?(D)A、voidaMethod(){...}B、publicintaMethod(){...}C、publicvoidaMethod(){...}D、publicintaMethod(intm){...}17.下面关于继承的哪些叙述是正确的?(D)技术改变世界创新驱动发展您的未来就是我们的未来A.在java中允许多继承。B.在java中一个类只能实现一个接口。C.在java中一个类不能同时继承一个类和实现一个接口。D.java的单一继承使代码更可靠。18.运行下面程序段的结果是:(D)。publicclassMyMain{publicstaticvoidmain(Stringargs){System.out.println(“HelloJava”);}}A.正常输出HelloJavaB.编译时出错C.运行时出错D.以上答案都不对19.类与对象的关系是(A)。A.类是对象的抽象B.类是对象的具体实例C.对象是类的抽象D.对象是类的子类20.下列关于修饰符混用的说法,错误的是(BD)。A.abstract不能与final并列修饰同一个类B.abstract类中不可以有private的成员C.abstract方法必须在abstract类中D.static方法中能处理非static的属性解析:abstract类中可以有private的成员,只是它的private成员不能被继承,所以在abstract类中定义private成员没有意义。21.编译并运行下述程序段的结果是:(B)。publicclassTest{publicstaticvoidmain(Stringargv[]){int[]count=newint[4];System.out.println(count[4]);技术改变世界创新驱动发展您的未来就是我们的未来}}A.编译时错误B.运行时错误C.输出0D.输出null22.下面是有关子类继承父类构造函数的描述,其中正确的是(CD)。A.创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数。B.子类无条件地继承父类不含参数的构造函数。C.子类必须通过super关键字调用父类的构造函数。D.子类无法继承父类的构造函数。解析:子类无法继承父类的构造器,但有时候可以使用super调用父类构造器中的初始化代码。在继承关系中一定要确保构造器的上溯链不得中断,否则会出错。23.下列类的定义中,错误的是(B)。A.classx{....}B.publicxextendsy{....}C.publicclassxextendsy{....}D.classxextendsyimplementsy1{....}24.A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明:1.Aa0=newA();2.Aa1=newB();3.Aa2=newC();问以下哪个说法是正确的?(D)A.只有第1行能通过编译B.第1、2行能通过编译,但第3行编译出错C.第1、2、3行能通过编译,但第2、3行运行时出错D.第1行、第2行和第3行的声明都是正确的25.运行下列程序的结果是(C)技术改变世界创新驱动发展您的未来就是我们的未来abstractclassMineBase{abstractvoidamethod();staticinti;}publicclassMineextendsMineBase{publicstaticvoidmain(Stringargv[]){int[]ar=newint[5];for(i=0;iar.length;i++){System.out.println(ar[i]);}}}A.打印5个0B.编译出错,数组ar[]必须初始化C.编译出错,Mine应声明为abstractD.出现IndexOutOfBoundes的例外26.编译并运行以下程序段的结果是:(A)publicclassMyClass{finalstaticinti;MyClass(){i=0;}publicstaticvoidmain(Stringargs[]){System.out.println(i);}}A.编译出错B.nullC.1D.0解析:final修饰的成员变量(静态成员原理和实例成员变量)必须显示初始化。静态成员变量可以在声明时或静态初始化代码块显示初始化;实例成员变量可以在声明时、初始化代码块或构造器中显示初始化。27.下面方法中的“返回类型Type”应该是什么?(A)publicclassReturnIt{returnTypemethodA(bytex,doubley){技术改变世界创新驱动发展您的未来就是我们的未来return(short)x/y*2;}}A.doubleB.intC.byteD.short28.下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的?(C)A、publicB、privateC、staticD、final29.下面关于java中类的说法哪个是不正确的?(AC)A.类体中只能有变量定义和成员方法的定义,不能有其他语句。B.构造函数是类中的特殊方法。C.类一定要声明为public的,才可以执行。D.一个java文件中可以有多个class定义。30.下列哪个类声明是正确的?(D)A.abstractfinalclassH1{…}B.abstractprivatemove(){…}C.protectedprivatenumber;D.publicabstractclassCar{…}31.方法重载是指(A)A.两个或两个以上的方法取相同的方法名,但形参的个数或类型不同B.两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以
本文标题:JAVA考核题-面向对象选择题(答案)
链接地址:https://www.777doc.com/doc-2881414 .html