-3

我有兴趣了解在构造函数内部或外部初始化对象之间是否有任何区别

public class HTMLTable {
int value1;
Scanner user_input;

  public HTMLTable () {
    user_input = new Scanner(System.in);
    value = user_input.next();
  }
}

代替:

public class HTMLTable {
int value1;
Scanner user_input = new Scanner(System.in);

  public HTMLTable () {
    value = user_input.next();
  }
}

有人可以解释吗?

4

2 回答 2

5

没有区别:编译器将在构造函数中移动任何外部初始化

简而言之,请参阅 Java,第3.2.4 节:字段默认值和初始化程序。

于 2013-03-11T10:55:09.857 回答
2

没有区别。无论如何,编译器都会将初始化代码(如第二个示例)移动到构造函数主体中。根据代码的可读性选择这个或那个变体。

于 2013-03-11T10:57:32.577 回答