Java笔试题之代码查错.doc

Java笔试题之代码查错.doc

ID:52155320

大小:36.50 KB

页数:7页

时间:2020-03-23

Java笔试题之代码查错.doc_第1页
Java笔试题之代码查错.doc_第2页
Java笔试题之代码查错.doc_第3页
Java笔试题之代码查错.doc_第4页
Java笔试题之代码查错.doc_第5页
资源描述:

《Java笔试题之代码查错.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.abstractclassName{  privateStringname;  publicabstractbooleanisStupidName(Stringname){}}大侠们,这有何错误?答案:错。abstractmethod必须以分号结尾,且不带花括号。2.publicclassSomething{  voiddoSomething(){      privateStrings="";      intl=s.length();  }}有错吗?答案:错。局部变量前不能放置任何访问修饰符(private,public,和protected)

2、。final可以用来修饰局部变量(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。3.abstractclassSomething{  privateabstractStringdoSomething();}这好像没什么错吧?答案:错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstractmethod封锁起来呢?(同理,abstractm

3、ethod前不能加final)。4.publicclassSomething{  publicintaddOne(finalintx){      return++x;  }}这个比较明显。答案:错。intx被修饰成final,意味着x不能在addOnemethod中被修改。5.publicclassSomething{  publicstaticvoidmain(String[]args){      Othero=newOther();      newSomething().addOne(o);  }  publicvoidaddOne(fina

4、lOthero){      o.i++;  }}classOther{  publicinti;}和上面的很相似,都是关于final的问题,这有错吗?答案:正确。在addOnemethod中,参数o被修饰成final。如果在addOnemethod里我们修改了o的reference(比如:o=newOther();),那么如同上例这题也是错的。但这里修改的是o的membervairable(成员变量),而o的reference并没有改变。6.classSomething{   inti;   publicvoiddoSomething(){     

5、  System.out.println("i="+i);   }}有什么错呢?看不出来啊。答案:正确。输出的是"i=0"。inti属於instantvariable(实例变量,或叫成员变量)。instantvariable有defaultvalue。int的defaultvalue是0。7.classSomething{   finalinti;   publicvoiddoSomething(){       System.out.println("i="+i);   }}和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗?答案:错

6、。finalinti是个final的instantvariable(实例变量,或叫成员变量)。final的instantvariable没有defaultvalue,必须在constructor(构造器)结束之前被赋予一个明确的值。可以修改为"finalinti=0;"。8.publicclassSomething{    publicstaticvoidmain(String[]args){       Somethings=newSomething();       System.out.println("s.doSomething()return

7、s"+doSomething());   }   publicStringdoSomething(){       return"Dosomething...";   }} 看上去很完美。答案:错。看上去在main里calldoSomething没有什么问题,毕竟两个methods都在同一个class里。但仔细看,main是static的。staticmethod不能直接callnon-staticmethods。可改成"System.out.println("s.doSomething()returns"+s.doSomething());"。同理,

8、staticmethod不能访问non-staticinstantvariable。9.此处,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。