[英]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.