java面向对象考试题.docx
- 文档编号:13320801
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:35
- 大小:24.96KB
java面向对象考试题.docx
《java面向对象考试题.docx》由会员分享,可在线阅读,更多相关《java面向对象考试题.docx(35页珍藏版)》请在冰点文库上搜索。
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+"");
}
答案:
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);
st2=
"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
第八题
(多选)请看下列代码:
packagecom.tarena;
publicclassGeodetics{
publicstaticfinaldoubleDIAMETER=12756.32;
}
访问静态常量DIAMETER的方式正确的是:
A.importcom.tarena.Geodetics;
publicclassTerraCarta{
publicdoublehalfway(){
returnGeodetics.DIAMETER/2.0;
}
}
B.importcom.tarena.Geodetics;
publicclassTerraCarta{
publicdoublehalfway(){
returnDIAMETER/2.0;
}
}
C.importcom.tarena;
publicclassTerraCarta{
publicdoublehalfway(){
returnGeodetics.DIAMETER/2.0;
}
}
D.importcom.tarena.*;
publicclassTerraCarta{
publicdoublehalfway(){
returnGeodetics.DIAMETER/2.0;
}
}
答案:
AD
第九题
(多选)在Java语言中,下列说法正确的是()。
答案:
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的是: ()。 答案: 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),同包(de
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 面向 对象 考试题