Java:初始化构造函数内部或外部的对象?

Java:初始化构造函数内部或外部的对象?,java,constructor,initialization,Java,Constructor,Initialization,我感兴趣的是了解在构造函数内部或外部初始化对象之间是否有任何区别 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_i

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

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();
  }
}

有人能解释一下吗?

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


请参见Java的一节,以了解其要点。

没有区别。不管怎样,编译器都会将第二个示例中的初始化代码移动到构造函数体中。根据代码的可读性选择这个或那个变体。