为什么java构造函数会这样。变量未分配给数组?

为什么java构造函数会这样。变量未分配给数组?,java,Java,使用数组的size变量没有被启动,为什么不呢?因为我从构造函数方法中为size赋值?book\u arr实例变量是在构造函数主体执行之前初始化的,所以此时size默认为0 您应该在构造函数内创建数组实例,以便使用传递给构造函数的大小: public class Library { private int size; public Library(int size) { this.size = size; } Book book_arr[]= new Book[siz

使用数组的size变量没有被启动,为什么不呢?因为我从构造函数方法中为size赋值?

book\u arr实例变量是在构造函数主体执行之前初始化的,所以此时size默认为0

您应该在构造函数内创建数组实例,以便使用传递给构造函数的大小:

    public class Library {
    
private int size;
public Library(int size) {
    this.size = size;
} 

Book book_arr[]= new Book[size];
更详细地说,所有实例变量声明和初始值设定项都是在创建实例时执行的,就在构造函数体之前,不管它们出现在构造函数之前还是之后。另一方面,相同类型的两个语句,例如:

public class Library 
{
    private int size;
    private Book[] book_arr;

    public Library(int size) {
        this.size = size;
        this.book_arr = new Book[size];
    } 
}
将按照它们出现的顺序执行。

在执行构造函数主体之前,book\u arr实例变量已初始化,因此此时默认大小仍然为0

您应该在构造函数内创建数组实例,以便使用传递给构造函数的大小:

    public class Library {
    
private int size;
public Library(int size) {
    this.size = size;
} 

Book book_arr[]= new Book[size];
更详细地说,所有实例变量声明和初始值设定项都是在创建实例时执行的,就在构造函数体之前,不管它们出现在构造函数之前还是之后。另一方面,相同类型的两个语句,例如:

public class Library 
{
    private int size;
    private Book[] book_arr;

    public Library(int size) {
        this.size = size;
        this.book_arr = new Book[size];
    } 
}

将按它们出现的顺序执行。

我来自C编程,所以java类不会逐行执行指令?我来自C编程,所以java类不会逐行执行指令?