1
请解释下面的行为,为什么第一个语句有效,而另一个无效并抛出错误。在方法体外的java类中的字段初始化
public class Test{
private String firstName="John";// is Valid
//Below is invalid
private String lastName;
lastname="Doe";
}
请解释下面的行为,为什么第一个语句有效,而另一个无效并抛出错误。在方法体外的java类中的字段初始化
public class Test{
private String firstName="John";// is Valid
//Below is invalid
private String lastName;
lastname="Doe";
}
一个类可以只包含声明(和静态/实例初始化)。根据firstName
,字段声明可以包含一个初始化程序 - 并且您的lastName
声明有效,但其后的赋值仅为语句,并且类不能直接包含语句。
如果你想从分配单独的声明,您可能需要放在一个构造函数赋值:
public class Test {
private String lastName;
public Test() {
lastName = "Doe";
}
}
或使用instance initializer(少在我的经验常见):
public class Test {
private String lastName;
{
lastName = "Doe";
}
}