java面向对象考试题.docx

上传人:b****6 文档编号:4413822 上传时间:2022-12-01 格式:DOCX 页数:17 大小:20.45KB
下载 相关 举报
java面向对象考试题.docx_第1页
第1页 / 共17页
java面向对象考试题.docx_第2页
第2页 / 共17页
java面向对象考试题.docx_第3页
第3页 / 共17页
java面向对象考试题.docx_第4页
第4页 / 共17页
java面向对象考试题.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

java面向对象考试题.docx

《java面向对象考试题.docx》由会员分享,可在线阅读,更多相关《java面向对象考试题.docx(17页珍藏版)》请在冰豆网上搜索。

java面向对象考试题.docx

java面向对象考试题

第一题:

publicstaticvoidmain(String[]args){

String[]fileNames={"abc.txt","bcd.exe","cde.exe","def.dat","efg.exe"};

for(StringfileName:

fileNames){

if(fileName.endsWith(".exe")){

System.out.print(fileName.substring(0,fileName.lastIndexOf(".exe"))+"");

}

}

}

fileName.endsWith(".exe")判断是否已".exe"结尾

substring(0,4)截取0-3的字符串,不包含4

lastIndexOf(".exe")获取".exe"最后一次出现的位置

答案:

bcdcdeefg

第二题:

publicstaticvoidgo(Longn){

System.out.println("Long");

}

publicstaticvoidgo(Shortn){

System.out.println("Short");

}

publicstaticvoidgo(intn){

System.out.println("int");

}

publicstaticvoidmain(String[]args){

shorty=6;

longz=7;

go(y);

go(z);

}

虽然y是short型的,但是编译器把它转换为int型

答案:

intLong

 

第三题:

publicstaticvoidmain(String[]args){

Stringtest="TestA.TestB.TestC.";

Stringregex="\\.\\s*";

String[]result=test.split(regex);

for(Strings:

result)

System.out.print(s+"");

}

\s空白字符*表示0个或任意多个text.split("\\.")按.拆分

答案:

TestATestBTestC

第四题:

publicclassAA{

privateLonguserId;

privateStringnickName;

publicLonggetUserId(){

returnuserId;

}

publicvoidsetUserId(LonguserId){

this.userId=userId;

}

publicStringgetNickName(){

returnnickName;

}

publicvoidsetNickName(StringnickName){

this.nickName=nickName;

}

publicstaticvoidmain(String[]args){

AAm1=newAA();

m1.setUserId(newLong(100001));

m1.setNickName("mick");

AAm2=newAA();

m2.setUserId(newLong(100001));

m2.setNickName("mick");

System.out.println(m1==m2);

System.out.println(m1.equals(m2));

}

equals方法返回值也是returnm1==m2

答案:

falsefalse

 

第五题

运行下列代码,输出为false的是:

()。

A.Stringst1="abc";System.out.println("abc"==st1);

B.Stringst2=

"abc"System.out.println(st2.equals(newString("abc")));

C.Integeri=100;System.out.println(100==i);

D.ArrayListlist=newArrayList();

System.out.println(list.contains(null));

答案:

D

第六题

publicinterfaceCookie{

Cookiecookie=newCart("小面包","盼盼");

}

publicclassCartimplementsCookie{

privateStringname;

privateStringproduction;

publicCart(Stringname,Stringproduction){

this.name=name;

this.production=production;

}

publicvoidsmell(){

cookie=newCart("蛋黄派","达利园");

}

}

final要求属性不可更改cookie=newCart("蛋黄派","达利园");这个修改了cookie的地址,所以报错

第七题

(多选)请看下列代码:

publicabstractclassShape{

intx;

inty;

publicabstractvoiddraw();

publicvoidsetAnchor(intx,inty){

this.x=x;this.y=y;

}

}

下列选项中能正确使用Shape类的是:

A.publicclassCircleimplementsShape{privateintradius;}

B.publicabstractclassCircleextendsShape{privateintradius;}

C.publicclassCircleextendsShape{privateintradius;publicvoiddraw();}

D.publicclassCircleextendsShape{

privateintradius;

publicvoiddraw(){

}

}

抽象类不可以实例化,如果一个类继承了抽象类,必须重新其抽象方法

答案:

BD

第八题

(多选)请看下列代码:

package.tarena;

publicclassGeodetics{

publicstaticfinaldoubleDIAMETER=12756.32;

}

访问静态常量DIAMETER的方式正确的是:

A.import.tarena.Geodetics;

publicclassTerraCarta{

publicdoublehalfway(){

returnGeodetics.DIAMETER/2.0;

}

}

B.import.tarena.Geodetics;

publicclassTerraCarta{

publicdoublehalfway(){

returnDIAMETER/2.0;

}

}

C.import.tarena;

publicclassTerraCarta{

publicdoublehalfway(){

returnGeodetics.DIAMETER/2.0;

}

}

D.import.tarena.*;

publicclassTerraCarta{

publicdoublehalfway(){

returnGeodetics.DIAMETER/2.0;

}

}

答案:

AD

 

第九题

(多选)在Java语言中,下列说确的是()。

A.一个接口可以继承多个接口

B.一个类可以继承多个类

C.一个类可以实现多个接口

D.一个类可以有多个子类

答案:

ACD

第十题

(多选)在<插入代码>处,填入下列代码编译正确的是:

publicvoidfoo(int[]x){<插入代码>}

A.foreach(intz:

x)System.out.println(z);

B.for(intz:

x)System.out.println(z);

C.while(x.hasNext())System.out.println(x.next());

D.for(inti=0;i

答案:

BD

第十一题

(多选)查看如下代码:

classA{protectedintmethod(inta,intb){return0;}}

下列选项中,可以在A的子类中使用的是()。

A.publicintmethod(inta,intb){return0;}

B.privateintmethod(inta,intb){return0;}

C.privateintmethod(inta,longb){return0;}

D.publicshortmethod(inta,intb){return0;}

A:

重写A类中的方法C:

重载A类中的方法

答案:

AC

第十二题

(多选)在Java语言中,下列说确的是:

()。

A.StringBuffer和StringBuilder的区别在于:

StringBuffer是线程安全的而StringBuilder不是。

B.String是不可变对象,而StringBuffer中封装的字符串数据是可以动态改变的

C.判断两个StringBuilder对象的字符序列是否相同,可以调用其equlas方法进行比较。

D.String的重写了equals方法,重写的逻辑是:

字符序列相同的String对象equals方法返回true。

答案:

ABD

 

第十三题

(多选)题目代码的功能为:

输出每个字符在一个字符串中出现的次数(不区分大小写)。

Stringstr="ewrwqFrewqfsadfdsfdsfs";

str=str.toLowerCase();

intmax_length=0;

while(str.length()>0){

《插入代码》

}

A.intlength=str.length();

charfirst=str.charAt(0);

StringstrNew=str.replaceAll(String.valueOf(first),"");

if(length>strNew.length()){

max_length=length-strNew.length();

System.out.println(first+":

"+max_length);

}

B.intlength=str.length();

charfirst=str.charAt(0);

StringstrNew=str.replaceAll(String.valueOf(first),"");

if(length>strNew.length()){

max_length=length-strNew.length();

str=strNew;

System.out.println(first+":

"+max_length);

}

C.intlength=str.length();

Stringfirst=str.substring(0,1);

StringstrNew=str.replaceAll(first,"");

if(length>strNew.length()){

max_length=length-strNew.length();

str=strNew;

System.out.println(first+":

"+max_length);

}

D.intlength=str.length();

Stringfirst=str.substring(0,1);

StringstrNew=str.replaceAll(first,"");

if(length>strNew.length()){

max_length=length-strNew.length();System.out.println(first+":

"+max_length);

}

答案:

BC

 

第十四题

(多选)下面的方法属于StringBuffer的是:

()。

A.size

B.insert

C.delete

D.length

答案:

BCD

第十五题

(多选)请看下列代码:

publicclassOld{

publicstaticObjectget(Listlist){

returnlist.get(0);

}

}

以下选项调用get方法,能编译通过的是:

A.Objecto=Old.get(newLinkedList());

B.Objecto=Old.get(newLinkedList

>());

C.Strings=Old.get(newLinkedList());

D.Strings=(String)Old.get(newLinkedList());

答案:

AD

1.重写必须继承,重载不用。

2.重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。

3.重写的方法修饰符大于等于父类的方法,重载和修饰符无关。

4.重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常

publicvoidmain(intx){}

 

intd='a'+'b'+'c';对的

 

第十六题

(单选题)从下面四段(A,B,C,D)代码中选择出正确的代码段()

(A)abstractclassName{

privateStringname;

publicabstractbooleanisStupidName(Stringname){}

}

(B)publicclassSomething{

voiddoSomething(){

privateStrings="";

intl=s.length();

}

}

(C)publicclassSomething{

publicstaticvoidmain(String[]args){

Othero=newOther();

newSomething().addOne(o);

}

publicvoidaddOne(finalOthero){

o.i++;

}

}

classOther{

publicinti;

}

(D)publicclassSomething{

publicintaddOne(finalintx){

return++x;

}

}

A.抽象方法不能有方法体。

B.方法中定义的是局部变量,不能用类成员变量修饰符private。

D.final修饰为常量,常量的值不能被改变。

第十七题

(单选题)下列关于interface的说确的是()

(A)interface中可以有private方法

(B)interface中可以有final方法

(C)interface中可以有function实现

(D)interface可以继承其他interface

A.接口中不可以有private的方法。

B.接口中不可以有final的方法接口中的方法默认是publicabstract的。

C.接口中的方法不可以有实现

 

第十八题

(单选题)在创建对象时,必须()

(A)先声明对象,然后才能使用对象

(B)先声明对象,为对象分配存空间,然后才能使用对象

(C)先声明对象,为对象分配存空间,对对象初始化,然后才能使用对象

(D)上述说法都对

对象是先声明,声明后会在给对象在存里开辟空间,之后初始化,再进行使用

答案:

C

第十九题

(单选题)关于以下说确的是()

1.classStaticStuff

2.{

3.staticintx=10;

4.static{x+=5;}

5.publicstaticvoidmain(Stringargs[])

6.{

7.System.out.println("x="+x);

8.}

9.static{x/=3;}

10.}

(A)4行与9行不能通过编译,因为缺少方法名和返回类型

(B)9行不能通过编译,因为只能有一个静态初始化器

(C)编译通过,执行结果为:

x=5

(D)编译通过,执行结果为:

x=3

静态块是类加载的时候就会被执行到的,静态执行顺序是按照在类中出现的先后顺序执行。

答案:

D

第二十题

(单选题)下列哪种说法是正确的()

(A)本类中实例方法可以调用其他类中所有实例方法

(B)本类中实例方法可以调用其他类中类方法

(C)本类中实例方法可以直接通过方法名调用其他类的实例方法

(D)本类中实例方法可以直接通过方法名调用本类中其他实例方法

A.本类实例方法不可以调用其他类的私有实例方法。

B.本类实例方法不可以调用其他类的私有类方法。

C.本类实例方法不可以直接通过方法名调用其他类的实例方法。

答案:

D

 

第二十一题

(多选题)在JAVA接口中可以定义()。

(A)静态方法

(B)常量

(C)构造方法

(D)抽象方法

接口中只能定义常量和抽象方法。

答案:

CD

第二十二题

(多选题)下面选项中哪两个可以在A的子类中使用()

classA{

protectedintmethod1(inta,intb){

return0;

}

}

(A)publicintmethod1(inta,intb){return0;}

(B)privateintmethod1(inta,intb){return0;}

(C)privateintmethod1(inta,longb){return0;}

(D)publicshortmethod1(inta,intb){return0;}

B子类重写父类的方法,访问权限不能降低;C属于重载;D子类重写父类的方法如果返回值类型是基本类型的话,要求相同。

答案:

AC

第二十三题

(单选题)在下面程序的第7行补充上下列哪个方法,会导致在编译过程中发生错误()1)classSuper{

2)publicfloatgetNum(){

3)return3.0f;

4)}

5)}

6)publicclassSubextendsSuper{

7)//TODO...

8)}

(A)publicfloatgetNum(){retun4.0f;}

(B)publicvoidgetNum(){}

(C)publicvoidgetNum(doubled){}

(D)publicdoublegetNum(floatd){retun4.0f;}

方法重写、重载的问题。

重写要求方法签名(方法名+形参列表)完全相同,返回值类型如果是基本类型或无返回值时必须一致。

重载要求方法名相同且参数列表必须不同,与返回值类型无关。

答案:

B

 

第二十四题

(单选题)关于以下程序代码的说明正确的是()

1.classHasStatic{

2.privatestaticintx=100;

3.publicstaticvoidmain(Stringargs[]){

4.HasStatichs1=newHasStatic();

5.hs1.x++;

6.HasStatichs2=newHasStatic();

7.hs2.x++;

8.hs1=newHasStatic();

9.hs1.x++;

10.HasStatic.x--;

11.System.out.println("x="+x);

12.}

13.}

(A)5行不能通过编译,因为引用了私有静态变量

(B)10行不能通过编译,因为x是私有静态变量

(C)程序通过编译,输出结果为:

x=103

(D)程序通过编译,输出结果为:

x=102

静态变量是所有对象所共享的,所以上述代码中的几个对象操作是同一静态变量x,静态变量可以通过类名调用。

答案:

D

第二十五题

(单选题)栈是一种()

(A)存取受限的线性结构

(B)存取不受限的线性结构

(C)存取受限的非线性结构

(D)存取不受限的非线性结构

栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。

答案:

A

第二十六题

(单选题)请问,以下哪些修饰符不能用于顶层类?

(A)public

(B)private

(C)abstract

(D)final

对于顶层类(外部类)来说,只有两种修饰符:

public和默认(default)。

因为外部类的上一单元是包,所以外部类只有两个作用域:

同包,任何位置。

因此,只需要两种控制权限:

包控制权限和公开访问权限,也就对应两种控制修饰符:

public和默认(default)。

但是private可以修饰class的,只不过该类不能使顶层类,可以是部类部类的上一级是外部类,那么对应的有四种访问控制修饰符:

本类(private),同包(default),父子类(protected),任何位置(public)。

当一个部类使用了private修饰后,只能在该类的外部类部使用

答案:

BCD

第二十七题

(多选题)如下哪些不是java的关键字()

(A)const

(B)null

(C)false

(D)this

java中,null、true、false都不属于java的关键字,它们都属于字面量值,都有着特殊的用途,且不建议作为标识符使用。

答案:

BC

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1