簡體   English   中英

為什么java構造函數這個。 變量沒有分配給數組?

[英]why the java constructor this. variable isn't being assigned to an array?

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

Book book_arr[]= new Book[size];

未啟動對數組使用 size 變量,為什么不因為我從構造函數方法將值分配給 size 呢?

book_arr實例變量在構造函數體執行之前被初始化,所以此時size仍然是0 (默認情況下)。

您應該在構造函數中創建數組實例,以便使用傳遞給構造函數的size

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

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

詳細地說,所有實例變量聲明和初始化器都在創建實例時執行,就在構造函數體之前(無論它們出現在構造函數之前還是之后)。 另一方面,兩個相同類型的語句,例如:

private int size = 5;
private Book[] book_arr = new Book[size];

將按照它們出現的順序執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM