成年人在线观看视频免费,国产第2页,人人狠狠综合久久亚洲婷婷,精品伊人久久

java代碼查錯面試題(附答案)

  JAVA代碼查錯

  1.

  abstract class Name {

  private String name;

  public abstract boolean isStupidName(String name) {}

  }

  大俠們,這有何錯誤?

  答案: 錯。abstract method必須以分號結(jié)尾,且不帶花括號。

  2.

  public class Something {

  void doSomething () {

  private String s = "";

  int l = s.length();

  }

  }

  有錯嗎?

  答案: 錯。局部變量前不能放置任何訪問修飾符 (private,public,和protected)。final可以用來修飾局部變量

  (final如同abstract和strictfp,都是非訪問修飾符,strictfp只能修飾class和method而非variable)。

  3.

  abstract class Something {

  private abstract String doSomething ();

  }

  這好像沒什么錯吧?

  答案: 錯。abstract的methods不能以private修飾。abstract的methods就是讓子類implement(實現(xiàn))具體細(xì)節(jié)的,怎么可以用private把abstract

  method封鎖起來呢? (同理,abstract method前不能加final)。

  4.

  public class Something {

  public int addOne(final int x) {

  return ++x;

  }

  }

  這個比較明顯。

  答案: 錯。int x被修飾成final,意味著x不能在addOne method中被修改。

  5.

  public class Something {

  public static void main(String[] args) {

  Other o = new Other();

  new Something().addOne(o);

  }

  public void addOne(final Other o) {

  o.i++;

  }

  }

  class Other {

  public int i;

  }

  和上面的很相似,都是關(guān)于final的問題,這有錯嗎?

  答案: 正確。在addOne method中,參數(shù)o被修飾成final。如果在addOne method里我們修改了o的reference

  (比如: o = new Other();),那么如同上例這題也是錯的。但這里修改的是o的member vairable

  (成員變量),而o的reference并沒有改變。

  

本文已影響6827
上一篇:java面試題及答案(四) 下一篇:軟件測試面試題(完整版)一

相關(guān)文章推薦

|||||