欢迎来到天天文库
浏览记录
ID:39430981
大小:31.00 KB
页数:5页
时间:2019-07-03
《构造最全的Java面试题整理(JAVA 代码查错)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1.下面代码有什么错误abstractclassName{privateStringname;publicabstractbooleanisStupidName(Stringname){}}答案:抽象方法不应该有实现,abstractmethod必须以分号结尾,且不带花括号。2.下面代码有什么错误publicclassSomething{voiddoSomething(){privateStrings="";intl=s.length();}}答案:局部变量前不能放置任何访问修饰符(private,public,和protected)。final可以用来修饰局部变量(final如同a
2、bstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。3.下面代码有什么错误abstractclassSomething{privateabstractStringdoSomething();}答案:abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstractmethod封锁起来呢?(同理,abstractmethod前不能加final)。4.下面代码有什么错误publicclassSomethi
3、ng{publicintaddOne(finalintx){return++x;}}答案:intx被修饰成final,意味着x不能在addOnemethod中被修改。5.下面代码有什么错误publicclassSomething{publicstaticvoidmain(String[]args){Othero=newOther();newSomething().addOne(o);}publicvoidaddOne(finalOthero){o.i++;}}classOther{publicinti;}答案:正确。在addOnemethod中,参数o被修饰成final。如果在add
4、Onemethod里我们修改了o的reference(比如:o=newOther();),那么如同上例这题也是错的。但这里修改的是o的membervairable(成员变量),而o的reference并没有改变。6.下面代码有什么错误classSomething{inti;publicvoiddoSomething(){System.out.println("i="+i);}}答案:正确。输出的是"i=0"。inti属於instantvariable(实例变量,或叫成员变量)。instantvariable有defaultvalue。int的defaultvalue是0。7.下面代码
5、有什么错误classSomething{finalinti;publicvoiddoSomething(){System.out.println("i="+i);}}答案:finalinti是个final的instantvariable(实例变量,或叫成员变量)。final的instantvariable没有defaultvalue,必须在constructor(构造器)结束之前被赋予一个明确的值。可以修改为"finalinti=0;"。8.下面代码有什么错误publicclassSomething{publicstaticvoidmain(String[]args){Somethi
6、ngs=newSomething();System.out.println("s.doSomething()returns"+doSomething());}publicStringdoSomething(){return"Dosomething...";}}答案:错。看上去在main里calldoSomething没有什么问题,毕竟两个methods都在同一个class里。但仔细看,main是static的。staticmethod不能直接callnon-staticmethods。可改成"System.out.println("s.doSomething()returns"+s.
7、doSomething());"。同理,staticmethod不能访问non-staticinstantvariable。9.此处,Something类的文件名叫OtherThing.java里面的代码,如下:classSomething{privatestaticvoidmain(String[]something_to_do){System.out.println("Dosomething...");}}答案:正确。从来没有人说过Java的Class
此文档下载收益归作者所有