JAVA常见面试题库及解答(9)

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;

  }

  答案: 正确。在addOne method中,参数o被修饰成final。如果在addOne method里我们修改了o的reference

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

  (成员变量),而o的reference并没有改变。

  6.

  class Something

  {

  int i;

  public void doSomething()

  {

  System.out.println("i = " + i);

  }

  }

  答案: 正确。输出的是"i = 0"。int i属於instant variable (实例变量,或叫成员变量)。instant variable有default value。int的default value是0。

  7.

  class Something

  {

  final int i;

  public void doSomething()

  {

  System.out.println("i = " + i);

  }

  }

  答案: 错。final int i 是个final的 instant variable (实例变量,或叫成员变量)。final的instant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。可以修改为"final int i = 0;"。

  8.

  public class Something

  {

  public static void main(String[] args)

  {

  

本文已影响6827
上一篇:华图面试题目及参考答案 下一篇:软件测试面试题库及参考答案

相关文章推荐

|||||