public class Library {
private int size;
public Library(int size) {
this.size = size;
}
Book book_arr[]= new Book[size];
没有启动将size变量用于数组,为什么不这样做,因为im是通过构造方法将值赋给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];
将按照它们出现的顺序执行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句