JAVA考核题面向对象选择题答案.docx
- 文档编号:6236179
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:26
- 大小:31.37KB
JAVA考核题面向对象选择题答案.docx
《JAVA考核题面向对象选择题答案.docx》由会员分享,可在线阅读,更多相关《JAVA考核题面向对象选择题答案.docx(26页珍藏版)》请在冰点文库上搜索。
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. String s1=“a”+“b”;
2. String s2=new String(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++;
}
}
A0 B7 C编译有错误 D其他答案
16.下面哪个函数是public void aMethod(){...}的重载函数?
(D)
A、void aMethod( ){...}
B、public int aMethod(){...}
C、public void aMethod(){...}
D、public int aMethod ( int m){...}
17.下面关于继承的哪些叙述是正确的?
(D)
A.在java中允许多继承。
B. 在java中一个类只能实现一个接口。
C. 在java中一个类不能同时继承一个类和实现一个接口。
D. java的单一继承使代码更可靠。
18.运行下面程序段的结果是:
(D)。
publicclassMyMain{
publicstaticvoidmain(Stringargs){
System.out.println(“HelloJava”);
}
}
A.正常输出HelloJava
B.编译时出错
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.输出null
22.下面是有关子类继承父类构造函数的描述,其中正确的是(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;i System.out.println(ar[i]); } } } A.打印5个0 B.编译出错,数组ar[]必须初始化 C.编译出错,Mine应声明为abstract D.出现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.short 28.下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的? (C) A、publicB、privateC、staticD、final 29.下面关于java中类的说法哪个是不正确的? (AC) A.类体中只能有变量定义和成员方法的定义,不能有其他语句。 B.构造函数是类中的特殊方法。 C.类一定要声明为public的,才可以执行。 D.一个java文件中可以有多个class定义。 30.下列哪个类声明是正确的? (D) A.abstractfinalclassH1{…} B.abstractprivatemove(){…} C.protectedprivatenumber; D.publicabstractclassCar{…} 31.方法重载是指(A) A.两个或两个以上的方法取相同的方法名,但形参的个数或类型不同 B.两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同 C.两个以上的方法名字不同,但形参的个数或类型相同 D.两个以上的方法取相同的方法名,并且方法的返回类型相同 32.指出下列程序运行的结果(B) publicclassExample{ Stringstr=newString("good"); char[]ch={'a','b','c'}; publicstaticvoidmain(Stringargs[]){ Exampleex=newExample(); ex.change(ex.str,ex.ch); System.out.print(ex.str+"and"); Sytem.out.print(ex.ch); } publicvoidchange(Stringstr,charch[]){ str="testok"; ch[0]='g'; } } A.goodandabcB.goodandgbc C.testokandabcD.testokandgbc 33.下列哪些语句关于内存回收的说明是正确的? (B) A.程序员必须创建一个线程来释放内存 B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象 34.MAX_LENGTH是int型public成员变量,变量值保持为常量100,用简短语句定义这个变量。 (CD) A、publicintMAX_LENGTH=100; B、finalintMAX_LENGTH=100; C、finalpublicintMAX_LENGTH=100; D、publicfinalintMAX_LENGTH=100; 35.给出下面代码: 1)classParent{ 2}privateStringname; 3}publicParent(){} 4}} 5)publicclassChildextendsParent{ 6}privateStringdepartment; 7}publicChild(){} 8}publicStringgetValue(){returnname;} 9}publicstaticvoidmain(Stringarg[]){ 10}Parentp=newParent(); 11}} 12}} 那些行将引起错误? (D) A、第3行B、第6行C、第7行D、第8行 36.类Teacher和Student是类Person的子类; Personp; Teachert; Students; //p,tandsareallnon-null. if(tinstanceofPerson){s=(Student)t;} 最后一句语句的结果是: (B) A、将构造一个Student对象;B、表达式是合法的; C、表达式是错误的;D、编译时正确,但运行时错误。 解析: 考查instanceof和继承中的强制转换。 tinstanceofPerson表达式是正确的。 s=(Student)t;这句转换编译是错误的。 37.给出下面代码段 1)publicclassTest{ 2)intm,n; 3)publicTest(){} 4)publicTest(inta){m=a;} 5)publicstaticvoidmain(Stringarg[]){ 6)Testt1,t2; 7)intj,k; 8)j=0;k=0; 9)t1=newTest(); 10)t2=newTest(j,k); 11)} 12)} 哪行将引起一个编译时错误? (D) A、line3B、line5C、line6D、line10 38.对于下列代码: 1)classPerson{ 2)publicvoidprintValue(inti,intj){//...} 3)publicvoidprintValue(inti){//...} 4)} 5)publicclassTeacherextendsPerson{ 6)publicvoidprintValue(){//...} 7)publicvoidprintValue(inti){//...} 8)publicstaticvoidmain(Stringargs[]){ 9)Persont=newTeacher(); 10)t.printValue(10); 11)} 第10行语句将调用哪行语句? (D) A、line2B、line3C、line6D、line7 39.System类在哪个包中? (D) A、java.utilB、java.ioC、java.awtD、java.lang 40.对于下列代码: publicclassParent{ publicintaddValue(inta,intb){ ints; s=a+b; returns; } } classChildextendsParent{ } 下述哪些方法可以加入类Child? (CD) A、intaddValue(inta,intb){//dosomething...} B、publicvoidaddValue(inta,intb){//dosomething...} C、publicintaddValue(inta){//dosomething...} D、publicintaddValue(inta,intb)throwsMyException{//dosomething...} 解析: A选项不符合一大;B选项返回值类型不匹配;C选项为自己的方法;D选项异常更明确。 41.看下面一段程序: classAclass{ voidgo(){ System.out.println("Aclass"); } } publicclassBclassextendsAclass{ voidgo{ System.out.println("Bclass"); } publicstaticvoidmain(Stringargs[]){ Aclassa=newAclass(); Aclassa1=newBclass(); a.go(); a1.go(); } 以上程序运行结果是: (C) A、AclassAclassB、BclassBclass C、AclassBclassD、BclassAclass 42.运行下列程序,会产生什么结果: (B) classOuter1{ privateinta; voidfoo(doubled,finalfloatf){ Strings; finalbooleanb; classInner{ voidmethodInner(){ System.out.println("intheInner"); } } } publicstaticvoidmain(Stringargs[]){ Outer1me=newOuter1(); me.foo(123,123); System.out.println("outer"); } } A、intheInnerouterB、outer C、intheInnerD、编译不通过 43.下面哪个修饰符修饰的方法只能被本类中的其他方法使用(C) A、protectedB、staticC、privateD、public 44.下面程序运行后的输出结果为(C) classA{ staticinty=3; voidshowy(){ System.out.println(“y=”+y); } } classtestA{ publicstaticvoidmain(Stringaaa[]) { Aa1=newA(); A.y+=1; a1.y++; a1.showy(); } } 输出结果选择: A、y=3;B、y=4;C、y=5;D、程序运行出错 45.下面关于构造函数的说法不正确的是(B) A、构造函数也属于类的方法,用于创建对象的时候给成员变量赋值。 B、构造函数不可以重载。 C、构造函数没有返回值。 D、构造函数名称一定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 考核 面向 对象 选择题 答案