JAVA 代码查错(有些太意外了,也许你现在没注意到,呵呵)
1.
abstractclassName{
privateStringname;
publicabstractbooleanisStupidName(Stringname){}
}这有何错误?
答案:错。abstractmethod 必须以分号结尾,且不带花括号。
2.
publicclassSomething{
voiddoSomething(){
privateStrings="";
intl=s.length();
}
}
有错吗?
答案:错。局部变量前不能放置任何访问修饰符8(private,public,和
protected)。final 可以用来修饰局部变量
(final 如同 abstract 和 strictfp,都是非访问修饰符,strictfp 只能修饰 class 和
method 而非 variable)。
3.
abstractclassSomething{
privateabstractStringdoSomething();
}
这好像没什么错吧?
答案:错。abstract 的 methods 不能以 private 修饰。abstract 的 methods 就是
让子类 implement(实现)具体细节的,怎么可以用 private 把 abstract
method 封锁起来呢?(同理,abstractmethod 前不能加 final)。
4.
publicclassSomething{
publicintaddOne(finalintx){
return++x;
}
}
这个比较明显。
答案:错。intx 被修饰成 final,意味着 x 不能在 addOnemethod 中被修改。
5.
publicclassSomething{
publicstaticvoidmain(String[]args){
Othero=newOther();
newSomething().addOne(o);
}
publicvoidaddOne(finalOthero){
o.i++;
}