方法之外的java类中的字段初始化';身体

方法之外的java类中的字段初始化';身体,java,initialization,Java,Initialization,请解释以下行为,为什么第一个语句有效,而另一个语句无效并抛出错误 public class Test{ private String firstName="John";// is Valid //Below is invalid private String lastName; lastname="Doe"; } 类只能包含声明(和静态/实例初始值设定项)。根据firstName,字段声明可以包含初始值设定项,lastName的声明是有效的,但后面的赋值只是一

请解释以下行为,为什么第一个语句有效,而另一个语句无效并抛出错误

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";
    }
}
或者使用(在我的经验中不太常见的):

类只能包含声明(和静态/实例初始值设定项)。根据
firstName
,字段声明可以包含初始值设定项,
lastName
的声明是有效的,但后面的赋值只是一个语句,类不能直接包含语句

如果要将声明与赋值分开,则需要将赋值放在构造函数中:

public class Test {
    private String lastName;

    public Test() {
        lastName = "Doe";
    }
}
或者使用(在我的经验中不太常见的):